Побитовый калькулятор

Введите два значения и выберите операцию, чтобы увидеть результат в десятичной, шестнадцатеричной и двоичной записи с битами каждого шага. Выбранная ширина определяет, какие биты существуют, поэтому NOT и сдвиги дают результат, который получил бы компьютер.

Бесплатно Работает в браузере Проверено вторник, 10 ноября 2026 г.

Число, над которым выполняется действие, в системе, выбранной в поле «Система счисления». Отрицательные десятичные значения хранятся в дополнительном коде.

Используется только в AND, OR, XOR, NAND и NOR.

Система счисления

Результат

Шестнадцатеричное — Результат с префиксом 0x.
Десятичное (без знака) —
Десятичное (дополнительный код) — Те же биты, прочитанные как число со знаком.
Двоичное —
Проверка — Показывает, помещается ли каждое значение в ширину.
Побитно

Этот инструмент работает в вашем браузере. То, что вы вводите, нам не отправляется.

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

  1. Введите первое значение в поле Первое значение (A), а второе — в Второе значение (B), если операция его использует.
  2. Выберите Система счисления, в которой введены значения, и Операцию.
  3. Для сдвига или вращения задайте Сдвиг или вращение на. Выберите Ширину, которую должен иметь результат.
  4. Прочитайте результат в Шестнадцатеричное, Десятичное (без знака) и Двоичное, а также таблицу побитно под ними.

Логические операции

0xCA AND 0x0F = 11001010 AND 00001111 = 00001010 = 0x0A
  • AND даёт 1 только там, где оба бита равны 1. Используйте её, чтобы оставить одни биты и сбросить другие.
  • OR даёт 1, если хотя бы один из битов равен 1. Используйте её, чтобы установить биты.
  • XOR даёт 1 там, где ровно один бит равен 1. Двукратное применение одного и того же XOR возвращает исходное значение.
  • NAND и NOR — это AND и OR с последующим NOT. NOT инвертирует каждый бит в пределах ширины.

Сдвиги и вращения

Сдвиг влево смещает каждый бит на одну позицию вверх и заполняет низ нулями; бит, который выходит за верх, теряется. Логический сдвиг вправо смещает биты вниз и заполняет верх нулями. Арифметический сдвиг вправо заполняет верх копиями знакового бита, поэтому отрицательное значение остаётся отрицательным. Вращение возвращает бит, вышедший с одного конца, на другой конец.

0xCA, сдвиг влево на 1 = 10010100 (0x94); логический вправо = 01100101 (0x65); арифметический вправо = 11100101 (0xE5); вращение влево = 10010101 (0x95)

Ширина имеет значение

NOT от нуля — это 0xFF в 8 битах, 0xFFFF в 16 битах и 0xFFFFFFFF в 32 битах, потому что результат имеет столько разрядов, какова ширина. Значение, которому нужно больше разрядов, чем ширина, не сохраняется целиком: инструмент берёт его младшие биты и показывает строку «Проверка» красным цветом.

Что инструмент не охватывает

  • Языки различаются. Побитовые операторы JavaScript приводят операнды к 32-битным целым, поэтому не могут показать 64-битные результаты. Этот инструмент показывает биты выбранной ширины, а BigInt делает 64-битные значения точными.
  • Битовые поля внутри структур, порядок байтов и форматы файлов: для них смотрите шестнадцатеричный просмотрщик.

Пример: 0xCA AND 0x0F в 8 битах

Введите CA как первое значение и 0F как второе, при «Система счисления» «Шестнадцатеричная» и «Ширина» 8 бит. Результат — 00001010, то есть 0x0A в шестнадцатеричной записи и 10 в десятичной. Остаются только биты, которые установлены в обоих значениях на одном месте: их два, оба в младших четырёх разрядах, которые пропускает 0F.

Результат Значение
Шестнадцатеричное 0x0A
Двоичное 0b0000 1010
Десятичное (без знака) 10

Частые вопросы

В чём разница между логическим и арифметическим сдвигом вправо?

Оба сдвигают биты на одну позицию вниз. Логический сдвиг заполняет верх нулями, поэтому значение считается беззнаковым. Арифметический сдвиг копирует знаковый бит, поэтому отрицательное значение остаётся отрицательным: 0xCA — это −54, а при сдвиге вправо на 1 получается −27 (0xE5).

Почему NOT даёт разный результат при разной ширине?

NOT инвертирует каждый разряд ширины. Ноль — это 00000000 в 8 битах, поэтому NOT даёт 11111111 (0xFF); в 32 битах у нуля 32 разряда, поэтому NOT даёт 0xFFFFFFFF. Одно и то же число имеет разное количество разрядов при разной ширине.

Что делает вращение, чего не делает сдвиг?

Сдвиг теряет биты, вышедшие с одного конца. Вращение возвращает их на другой конец, поэтому ни один бит не теряется. Вращение на ширину даёт то же значение снова.

Почему значение помечается, если оно не помещается в ширину?

Значение, которому нужно больше разрядов, чем ширина, нельзя сохранить целиком. Инструмент использует младшие биты, поэтому 300 в 8 битах становится 44, а строка «Проверка» сообщает, что произошло, чтобы результат не приняли за введённое вами значение.

Можно ли вводить двоичные числа с пробелами?

Да. Пробелы и подчёркивания игнорируются, поэтому 1100 1010 и 11001010 — одно и то же значение. Шестнадцатеричное число может иметь префикс 0x, а двоичное — префикс 0b.

Источники

Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..

Мы используем необходимые cookie, чтобы сайт работал. С вашего согласия Google также использует рекламные cookie, чтобы показывать персонализированную рекламу. Если вы откажетесь, реклама всё равно будет показываться, но не будет персонализированной.