首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

有int i = 2;为什么 i >> 32 == 2? i 的值并没有改变呢?解决方案

2012-02-16 
有int i 2为什么i 32 2?i的值并没有改变呢???问题同题目,不得其解,希望可以得到解释,谢谢。。。[解

有int i = 2;为什么 i >> 32 == 2? i 的值并没有改变呢???
问题同题目,不得其解,希望可以得到解释,谢谢。。。

[解决办法]
JAVA采取的处理方式而已。
因为在JVM里,int类型是32位的。。。
位移32(或32的倍数)比特相当于回到原点,因此值还是保持原来的值。
除非你在一个周期内进行位移,JVM才认为有意义!!
[解决办法]
再给楼主说的透彻点,在进行位移处理的时候,比如 2>>64 ,JVM并不会真去移动64位然后又回到原来的位置(因为是32位的2进制),JVM会对位移的位数进行%32取余再移动. 既然是这样 ,那么int i = 2; i >> 32 == 2 .因为移32等于移0

热点排行