unsigned right Shift ‘>>>’ Оператор в Java

Возможный дубликат:
Почему (-1 >>> 32) = -1?

Беззнаковый оператор сдвига вправо вставляет 0 в крайнее левое. Поэтому, когда я это делаю

System.out.println(Integer.toBinaryString(-1>>>30)) 

вывод

 11 

Следовательно, он вставляет 0 в самый левый бит.

 System.out.println(Integer.toBinaryString(-1>>>32)) 

вывод

 11111111111111111111111111111111 

Разве это не должно быть 0?

См. http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.19.

Если продвинутый тип левого операнда является int, в качестве расстояния сдвига используются только пять младших бит правого операнда. Это как если бы правый операнд подвергался поразрядному логическому оператору AND & (§15.22.1) с значением маски 0x1f (0b11111). Поэтому фактически используемое расстояние сдвига всегда находится в диапазоне от 0 до 31 включительно.

то есть -1 >>> 32 эквивалентно -1 >>> 0 и -1 >>> 33 эквивалентно -1 >>> 1 и, особенно запутанно, -1 >>> -1 эквивалентно -1 >>> 31

  • Объявление 64-битных переменных в C
  • Interesting Posts

    Как сохранить любое окно «Всегда сверху»?

    Получение случайного объекта из NSArray без дублирования

    Специализированная специализированная специализация classа, в которой шаблонный шаблон является шаблоном

    Компилировать код с помощью JavaFX 2.0 (используя командную строку)

    Невозможно создать или отредактировать виртуальные устройства Android (AVD) от Eclipse, ADT 22.6

    Скрипт Powershell для экспорта всех устройств в диспетчере устройств в виде дерева или списка?

    Инструмент для аннотирования изображений (скриншоты) для целей документации?

    Создание случайного цвета в Java?

    Печать значений всех полей в структуре C ++

    WOL через Интернет – без настройки маршрутизатора

    Активность камеры, возвращающая нулевой андроид

    Делегирование изменений поведения кеширования в Roslyn

    Как рисовать несколько осей на диаграмме с использованием диаграмм JAVAFX

    Как обновить значение определенного встроенного документа внутри массива определенного документа в MongoDB?

    Тест anova терпит неудачу на lme fits, созданный с помощью вставленной формулы

    Давайте будем гением компьютера.