Перейти к основному содержанию

Калькулятор побитового сдвига

Сдвиньте биты целого числа влево или вправо — arithmetic/signed >> или logical/unsigned >>> — с выбранной шириной бита (8/16/32/64), отображая двоичный шаблон до/после, а также результат в десятичном и шестнадцатеричном формате.

Ввод

Десятичное (допускается отрицательное) или беззнаковое 0x-hex, напр. -8 или 0xF0.

Количество позиций бит для сдвига. Размеры ≥ ширины бита ограничиваются полным сдвигом (результат 0 или -1 для арифметического сдвига вправо отрицательного значения); отрицательные размеры обрабатываются как 0.

Вывод

Результат сдвига
PropertyValue
No data yet
Это было полезно?

Руководства

Калькулятор побитового сдвига сдвигает биты целого числа влево или вправо и показывает точный двоичный шаблон до и после, плюс результат в десятичном и шестнадцатеричном формате. Создан для тех, кто должен точно понимать операции сдвига — студенты, изучающие дополнение двойки, разработчики отладки побитовой маски или инженеры проверки трюка быстрого умножения/деления — а не просто получить номер обратно.

Арифметический и логический сдвиг

Сдвиг влево (<<) всегда работает одинаково: биты перемещаются к наиболее значимой позиции, а нули заполняются справа. Биты, сдвинутые за пределы выбранной ширины бита, отбрасываются.

Сдвиг вправо имеет два разных значения, и выбор неправильного — классический источник ошибок:

  • Арифметический сдвиг вправо (>>, signed) сохраняет знак значения. Если число отрицательное (его верхний бит — 1), незанятые высокие биты заполняются 1, поэтому результат остается отрицательным — то же правило, что и целочисленное деление, которое округляется в сторону отрицательной бесконечности. Это то, что делает оператор >> в большинстве языков для целых чисел со знаком.
  • Логический сдвиг вправо (>>>, unsigned) полностью игнорирует знак. Незанятые высокие биты всегда заполняются 0, поэтому сдвинутое отрицательное число становится большим положительным числом. Это правильный выбор при работе со значением как с необработанной побитовой схемой, а не как с подписанным количеством — например, при извлечении цветовых каналов из упакованного пикселя.

Поскольку различие проявляется только с отрицательными числами, легко правильно проверить положительные значения, а затем получить сюрприз в production. Этот калькулятор позволяет переключаться между ними на одном входе, чтобы точно увидеть, где они различаются.

Как использовать

  1. Введите Значение — десятичное целое число (отрицательные числа допускаются, напр. -8) или беззнаковый hex литерал как 0xF0.
  2. Введите Размер сдвига — сколько позиций бит сдвинуть.
  3. Выберите Направление сдвига: сдвиг влево, арифметический (signed) сдвиг вправо или логический (unsigned) сдвиг вправо.
  4. Выберите Ширину бита — 8, 16, 32 или 64 бит. Это определяет, как ваше значение заполняется и где биты выпадают с края; одно и то же десятичное значение может сдвигаться по-разному в зависимости от выбранной ширины.

Таблица результатов показывает двоичный шаблон исходного значения, заполненный до выбранной ширины, двоичный шаблон после сдвига, результат в десятичном формате и результат в hex — обновляется мгновенно при изменении любого поля.

FAQ

Что произойдет, если размер сдвига больше, чем ширина бита? Результат — то, что вы получите, сдвинув каждый исходный бит: 0 для сдвига влево и логического сдвига вправо, и 0 или -1 (все биты установлены) для арифметического сдвига вправо, в зависимости от того, было ли значение неотрицательным или отрицательным.

Что произойдет с отрицательным размером сдвига? Это обрабатывается как 0 — значение проходит без изменений.

Почему hex вход как 0xF0 сдвигается иначе, чем десятичное 240? Это не так — 0xF0 и 240 — это одно и то же значение. Hex ввод — это просто более удобный способ ввода точной побитовой схемы, когда вы думаете в терминах двоичного/hex вместо десятичного.

Почему мое отрицательное число стало огромным положительным числом? Вероятно, вы использовали логический (unsigned) сдвиг вправо для отрицательного значения. Это ожидается: логический сдвиг не имеет концепции знака, поэтому он заполняется 0 вместо сохранения бита знака. Переключитесь на арифметический сдвиг вправо, если вы хотите, чтобы знак был сохранен.

Это то же самое, что и общий калькулятор побитовых операций? Нет — калькулятор побитовых операций обрабатывает AND/OR/XOR/NOT плюс сдвиги на паре чисел. Этот инструмент предназначен специально для изучения поведения сдвига: он добавляет селектор ширины бита и полное двоичное представление до/после, чтобы вы могли точно увидеть, какие биты переместились, какие биты выпали и какие биты были заполнены.

Конфиденциальность

Все расчеты выполняются полностью в вашем браузере. Ваше значение ввода никогда не отправляется на сервер.

bitwiseshiftbinarytwo's complementarithmetic shiftlogical shiftbit manipulation

Используйте из кода

REST API

curl -X POST https://api.iotools.cloud/v1/tool/bitwise-shift-calculator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "value": "5",
    "shiftAmount": "2",
    "shiftDirection": "left",
    "bitWidth": "8"
  }'

Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.

Спросите у ИИ-агента

Use the IOTools `bitwise-shift-calculator` tool (Bitwise Shift Calculator) on this input:

YOUR_INPUT_HERE

Вставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.

Стоимость вызоваОт 5 кредитов

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.