Java源码解析Integer方法解读
通过mask与i相与不断取出digits数组中对应的字符。在就是i每次进行逻辑右移的运算,最高位补充零,这样最终经过不断的逻辑右移后i会变为0此外,采用do-while是防止i本身是0的情况下,buf数组无法获得其值。这个方法很有意思,我自己算了算,然后才明白了他的精髓,这个方法的作用是求构成一个整数的最大的位所代表的整数的值。这里通过位移的方式实现了这个功能。接下来举个简单的例子,128来讲二进制是1000 0000。下面以他为例子算下:最终的结果如你所看到的,后面的位全部填充为1,把后面的位全部减掉就得到了最高的位代表的整数。这个方法着实废了半天功夫研究,后来算是搞懂了个大概:
用户评论