黑马程序员技术交流社区

标题: java中位运算符的右移 [打印本页]

作者: 黑黑黑马    时间: 2014-3-12 22:25
标题: java中位运算符的右移
左移和右移,可以理解可是右移的>>与>>>就不是太理解了,而求
负数的右移,就比如-24>>> 是怎么算的。。。求解???:hug:
作者: 黑黑黑马    时间: 2014-3-12 23:48
没人吗?
作者: 林梦    时间: 2014-3-13 00:06
>>>  是不管是不是负数都补0
//-24>>> 3
1111-1111-1111-1111-1111-1111-1110-1000 >>>3
0001-1111-1111-1111-1111-1111-1111-1101//前面补0
结果是 536870909
作者: 刘一博    时间: 2014-3-13 00:27
移位运算符可分为:
<<(左移)
>>(带符号右移)
>>>(无符号右移)
-24>>>n
先将-24转换为32位2进制数,再将该二进制数右移n位,高位补0,,超过位数自动去除
-24>>n
先将-24转换为32位2进制数,再将该二进制数右移n位,高位补符号位(负数为1),超过位数自动去除




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2