Возможный дубликат:
Почему (-1 → 32) = -1?
Беззнаковый оператор сдвига вправо вставляет в крайнее левое значение 0. Поэтому, когда я делаю
System.out.println(Integer.toBinaryString(-1>>>30))
Выход
11
Следовательно, он вставляет 0 в самый левый бит.
System.out.println(Integer.toBinaryString(-1>>>32))
Выход
11111111111111111111111111111111
Не должно быть 0?