我想知道这可能是一个JVM错误吗?
java版"1.6.0_0"OpenJDK运行时环境(IcedTea6 1.4.1)(6b14-1.4.1-0ubuntu13)OpenJDK 64位服务器VM(内置14.0-b08,混合模式)
class Tmp {
public static void main(String[] args) {
System.out.println("1>>1 = "+(1>>1));
System.out.println("1>>2 = "+(1>>2));
System.out.println("1>>31 = "+(1>>31));
System.out.println("1>>32 = "+(1>>32));
System.out.println("1>>33 = "+(1>>33));
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时产生这个:
1>>1 = 0
1>>2 = 0
1>>31 = 0
1>>32 = 1 <---------- should be 0 i think
1>>33 = 0
Run Code Online (Sandbox Code Playgroud)
对于任何32的倍数,我也得到相同的结果.
我需要写自己的右移检查这个吗?