关于 Java >> 和 >>>、& 和 &&、^ 符号的用途

>> 和 >>>

>>:带符号右移。正数右移高位补0,负数右移高位补1。比如:

4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。

>>>:无符号右移。无论是正数    还是负数,高位通通补0。

对于正数而言,>>和>>>没区别。

对于负数而言,-2 >>> 1,结果是2147483647(Integer.MAX_VALUE),-1 >>> 1,结果是2147483647(Integer.MAX_VALUE)。


& 和 && 


^

按位异或。比如二进制     1001 ^ 1100 = 0101
0^0=0,1^1=0 ,1^0 = 1,0^1=1。
^ 按位异或(Xor)是一种可逆运算符,只有在两个比较的位不同时其结果是1,否则结果为0。因此在计算时应先将数值转为二进制,进行位比较,然后把所得的结果转换为原来的进制数。如下例:0x03^0x05 => 11B ^ 101B=110B => 0x06。

猜你喜欢

转载自blog.csdn.net/T1014216852/article/details/79551946
今日推荐