我之前见过 >>
和 >>>
,它们有什么区别以及何时使用每个符号?
我之前见过 >>
和 >>>
,它们有什么区别以及何时使用每个符号?
其他人已经提供了解释。>>>将所有位数都移动,包括符号位(即最高位)。>>保留符号位并移动其余所有位。下面的示例代码可以更好地解释这一点:
int x=-64;
System.out.println("x >>> 3 = " + (x >>> 3));
System.out.println("x >> 3 = " + (x >> 3));
System.out.println(Integer.toBinaryString(x >>> 3));
System.out.println(Integer.toBinaryString(x >> 3));
输出结果如下:
x >>> 3 = 536870904
x >> 3 = -8
11111111111111111111111111000
11111111111111111111111111111000
http://msdn.microsoft.com/en-us/library/342xfs5s%28v=vs.94%29.aspx