Java中的 >>和 >>>
作者:互联网
简单说 >> 是有符号右移, >>> 是无符号右移。
计算机中存储的都是补码,所以对于正说来说,这两个操作没差。
但是对于负数来说:
有符号右移 >> 会给负数补码高位补1,无符号右移 >>> 给负数补码高位补0。
举例:
-2的补码:1111 1111 1111 1111 1111 1111 1111 1110
无符号右移1位结果:0111 1111 1111 1111 1111 1111 1111 1111
,转为10进制为2147483647
,即Integer.MAX_VALUE
。
-1的无符号右移结果和-2一样,道理也是一样的。
标签:右移,Java,符号,高位,补码,负数,1111 来源: https://blog.csdn.net/IronWring_Fly/article/details/100652781