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
------解决方案--------------------