1
jamesxu 2015-10-12 22:48:12 +08:00 via iPhone 1
int 是 32 位,向右移 n 位, n 会换算成 n mod 32 ,相当于-1>>>0
|
2
raptium 2015-10-12 22:55:44 +08:00 1
因为其实没有移,左边是 int 的话,右边只看最低 5 bit
左边是 long 右边看 6 bit 32 的话,正好是 100000 ,最低 5 个 bit 全是 0 |
4
firemiles 2015-10-13 10:19:15 +08:00 1
各位都没说到点子上吧,-1 右移任何位数都是-1 ,因为-1 右移后高位补上的是 1 ,所以-1 补码值不会变,一直是-1
|
5
coderHuang 2015-10-13 17:53:27 +08:00
@firemiles 这是算术右移还是逻辑右移?
|
6
zealot0630 2015-10-13 18:01:25 +08:00
|
7
zealot0630 2015-10-13 18:01:58 +08:00
@firemiles 留下来参加下一轮面试
|
8
future0906 2015-10-13 18:40:11 +08:00
|
9
firemiles 2015-10-13 18:49:03 +08:00
@future0906 不好意思, java 不熟,不知道还有这么个逻辑右移符号,以为就是普通的算术右移>>,有点误人子弟了。但是 java 把逻辑右移做成这种效果是想做成循环逻辑右移吗?
|
10
jamesxu 2015-10-13 21:32:05 +08:00 via iPhone
|