Мне интересно, может быть, это ошибка JVM?
Java-версия "1.6.0_0"
Среда выполнения OpenJDK (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu13)
64-битная серверная виртуальная машина OpenJDK (сборка 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));
}
}
выдает это при запуске:
1>>1 = 0
1>>2 = 0
1>>31 = 0
1>>32 = 1 <---------- should be 0 i think
1>>33 = 0
Я также получаю те же результаты для любого кратного 32.
мне нужно написать собственное правое смещение, чтобы проверить это?