Калькулятор побитового сдвига
Сдвиньте биты целого числа влево или вправо — arithmetic/signed >> или logical/unsigned >>> — с выбранной шириной бита (8/16/32/64), отображая двоичный шаблон до/после, а также результат в десятичном и шестнадцатеричном формате.
Ввод
Десятичное (допускается отрицательное) или беззнаковое 0x-hex, напр. -8 или 0xF0.
Количество позиций бит для сдвига. Размеры ≥ ширины бита ограничиваются полным сдвигом (результат 0 или -1 для арифметического сдвига вправо отрицательного значения); отрицательные размеры обрабатываются как 0.
Вывод
| Property | Value |
|---|---|
| No data yet | |
Руководства
Калькулятор побитового сдвига сдвигает биты целого числа влево или вправо и показывает точный двоичный шаблон до и после, плюс результат в десятичном и шестнадцатеричном формате. Создан для тех, кто должен точно понимать операции сдвига — студенты, изучающие дополнение двойки, разработчики отладки побитовой маски или инженеры проверки трюка быстрого умножения/деления — а не просто получить номер обратно.
Арифметический и логический сдвиг
Сдвиг влево (<<) всегда работает одинаково: биты перемещаются к наиболее значимой позиции, а нули заполняются справа. Биты, сдвинутые за пределы выбранной ширины бита, отбрасываются.
Сдвиг вправо имеет два разных значения, и выбор неправильного — классический источник ошибок:
- Арифметический сдвиг вправо (
>>, signed) сохраняет знак значения. Если число отрицательное (его верхний бит — 1), незанятые высокие биты заполняются 1, поэтому результат остается отрицательным — то же правило, что и целочисленное деление, которое округляется в сторону отрицательной бесконечности. Это то, что делает оператор>>в большинстве языков для целых чисел со знаком. - Логический сдвиг вправо (
>>>, unsigned) полностью игнорирует знак. Незанятые высокие биты всегда заполняются 0, поэтому сдвинутое отрицательное число становится большим положительным числом. Это правильный выбор при работе со значением как с необработанной побитовой схемой, а не как с подписанным количеством — например, при извлечении цветовых каналов из упакованного пикселя.
Поскольку различие проявляется только с отрицательными числами, легко правильно проверить положительные значения, а затем получить сюрприз в production. Этот калькулятор позволяет переключаться между ними на одном входе, чтобы точно увидеть, где они различаются.
Как использовать
- Введите Значение — десятичное целое число (отрицательные числа допускаются, напр.
-8) или беззнаковый hex литерал как0xF0. - Введите Размер сдвига — сколько позиций бит сдвинуть.
- Выберите Направление сдвига: сдвиг влево, арифметический (signed) сдвиг вправо или логический (unsigned) сдвиг вправо.
- Выберите Ширину бита — 8, 16, 32 или 64 бит. Это определяет, как ваше значение заполняется и где биты выпадают с края; одно и то же десятичное значение может сдвигаться по-разному в зависимости от выбранной ширины.
Таблица результатов показывает двоичный шаблон исходного значения, заполненный до выбранной ширины, двоичный шаблон после сдвига, результат в десятичном формате и результат в hex — обновляется мгновенно при изменении любого поля.
FAQ
Что произойдет, если размер сдвига больше, чем ширина бита? Результат — то, что вы получите, сдвинув каждый исходный бит: 0 для сдвига влево и логического сдвига вправо, и 0 или -1 (все биты установлены) для арифметического сдвига вправо, в зависимости от того, было ли значение неотрицательным или отрицательным.
Что произойдет с отрицательным размером сдвига? Это обрабатывается как 0 — значение проходит без изменений.
Почему hex вход как 0xF0 сдвигается иначе, чем десятичное 240?
Это не так — 0xF0 и 240 — это одно и то же значение. Hex ввод — это просто более удобный способ ввода точной побитовой схемы, когда вы думаете в терминах двоичного/hex вместо десятичного.
Почему мое отрицательное число стало огромным положительным числом? Вероятно, вы использовали логический (unsigned) сдвиг вправо для отрицательного значения. Это ожидается: логический сдвиг не имеет концепции знака, поэтому он заполняется 0 вместо сохранения бита знака. Переключитесь на арифметический сдвиг вправо, если вы хотите, чтобы знак был сохранен.
Это то же самое, что и общий калькулятор побитовых операций? Нет — калькулятор побитовых операций обрабатывает AND/OR/XOR/NOT плюс сдвиги на паре чисел. Этот инструмент предназначен специально для изучения поведения сдвига: он добавляет селектор ширины бита и полное двоичное представление до/после, чтобы вы могли точно увидеть, какие биты переместились, какие биты выпали и какие биты были заполнены.
Конфиденциальность
Все расчеты выполняются полностью в вашем браузере. Ваше значение ввода никогда не отправляется на сервер.
Используйте из кода
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 кредитов |
|---|