![]() | 1 jamesxu 2015-10-12 22:48:12 +08:00 via iPhone ![]() int 是 32 位,向右移 n 位, n 会换算成 n mod 32 ,相当于-1>>>0 |
![]() | 2 raptium 2015-10-12 22:55:44 +08:00 ![]() 因为其实没有移,左边是 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 |
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 |