JAVA 右移运算符>>和>>>


java提供两种右移运算符,属于位运算符。位运算符用来对二进制位进行操作。
>>  :算术右移运算符,也称带符号右移。用最高位填充移位后左侧的空位。
>>>:逻辑右移运算符,也称无符号右移。只对位进行操作,用0填充左侧的空位。
 
表达式为:
r = e1 >> e2;
r = e1 >>> e2;
表示把数e1向右移动e2位。
 
运算规则:
>>  :按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。 符号位不变。
>>>:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
 
按上一篇,-1在32位二进制中表示为:
11111111 11111111 11111111 11111111
-1>>1:按位右移,符号位不变,仍旧得到
11111111 11111111 11111111 11111111
因此值仍为-1
 
而-1>>>1的结果为  01111111 11111111 11111111 11111111


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM