日期:2014-05-20  浏览次数:20650 次

java 中 9>>2 =1
 

  位移运算中

  9 >> 2 = 1 1001右移2位为 0001

  这个不明了(看教科书半天,也看不出个所以然,可能是1001 有两个“1”我就不会运算了)

------解决方案--------------------
9 >> 2 = 1 1001右移2位为 0010

应该是 0000 1001 >> 2 = 0000 0010 

>>往高位补符号位 0 

------解决方案--------------------
这个你看看 二进制数据就知道了
9 1001
右移两位变成10 就是2 再比如 2 10 右移一位 变成1 就是1

你的 9>>2 = 2 而不是 1 啊 


你再测试下。

个人博客: http://www.happyalaric.com
------解决方案--------------------
教科书有误
1001 >> 2 = 0010 = 2
右移1位相当于除以2,左移1位相当于乘以2
所以 9 >> 2 相当于 9 / 4 = 2

------解决方案--------------------