Мне интересно, возможно ли это ошибка JVM?
java version "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.
Мне нужно написать свой собственный сдвиг вправо, чтобы проверить это?