版本是 jdk8u60, 求指教.
|
1
int 是 32 位,向右移 n 位, n 会换算成 n mod 32 ,相当于-1>>>0
|
|
2
因为其实没有移,左边是 int 的话,右边只看最低 5 bit
左边是 long 右边看 6 bit 32 的话,正好是 100000 ,最低 5 个 bit 全是 0 |
|
4
各位都没说到点子上吧,-1 右移任何位数都是-1 ,因为-1 右移后高位补上的是 1 ,所以-1 补码值不会变,一直是-1
|
|
coderHuangOct 13, 2015
5
@firemiles 这是算术右移还是逻辑右移?
|
|
zealot0630Oct 13, 2015
6
|
|
zealot0630Oct 13, 2015
7
@firemiles 留下来参加下一轮面试
|
|
future0906Oct 13, 2015
8
|
|
firemilesOct 13, 2015
9
@future0906 不好意思, java 不熟,不知道还有这么个逻辑右移符号,以为就是普通的算术右移>>,有点误人子弟了。但是 java 把逻辑右移做成这种效果是想做成循环逻辑右移吗?
|
|
jwk345Oct 13, 2015 via iPhone
10
|