Числа, битовые операции и единицы

побитовый калькуляторПроверяйте каждый флаг

Выберите разрядность и основание, измените биты операндов и проверьте результат.

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

Ввод

Бит 0 — младший. Флажки напрямую изменяют операнд.

Результаты

Десятичный результат
8
Десятичное без знака
8
Десятичное со знаком
8
Двоичное
00001000
Шестнадцатеричное
0x08
Восьмеричное
0o10
70
60
50
40
31
20
10
00

Единичные позиции (1): 3

Данные обрабатываются в этом браузере и не отправляются на сервер.

Параметры

Одно целое на операнд, до 256 символов. 0b/0o/0x должны соответствовать основанию; без дробей и разделителей.

Режим со знаком допускает отрицательные числа и читает старший бит как знак. Арифметический сдвиг расширяет этот знак.

Расчёт завершён.

Побитовый калькулятор помогает разобрать число, в котором упакованы разрешения или состояния. Введите значение в A, а маску в B: AND оставит только позиции, установленные в обоих операндах.

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

Побитовый калькулятор с видимыми позициями

Проследите пересечение

Побитовый калькулятор начинает с примера 12 AND 10 = 8. Только бит 3 установлен в обоих входных значениях. Список позиций и число единиц позволяют проверить ответ; переключение одной ячейки показывает, что именно остаётся после маскирования.

Две строки по восемь ячеек переходят в строку результата, где остаётся только общая активная ячейка.

Сравните заполнение старших разрядов

При ширине 8 бит, режиме со знаком и A=240 сдвиг на две позиции вправо даёт 60 для логического варианта и −4 для арифметического. Отдельные пункты явно задают заполнение нулями или копиями знакового бита.

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

Сначала задайте правила чтения

01

Основание меняет чтение текста

Начальные настройки: десятичная запись, 8 бит, без знака, A=12, B=10 и AND. Смена основания не преобразует введённую строку, а читает её заново. Перед вводом 0xFF выберите шестнадцатеричное основание.

02

Ориентируйтесь по номерам

Бит 0 — младший. Ячейки идут от старших индексов к младшим и переносятся на новые строки на узком экране. Для NOT и сдвигов B скрыт и не проверяется; число позиций вводится отдельно в десятичной записи.

03

Проверяйте замену перед применением

Автоматический расчёт ждёт 350 мс после изменения. Отключите его для кнопки расчёта или Ctrl/Cmd + Enter. Пример, очистка и обмен сначала показывают предпросмотр; отмена восстанавливает ввод, настройки и предыдущий результат.

От отдельного флага к целому слову

Побитовые операции для флагов

AND выделяет позиции по маске, OR устанавливает их, XOR переключает. Для 5 и 3 результаты равны 1, 7 и 6. NOT инвертирует только A в выбранной ширине, не проверяя прежнее содержимое скрытого поля B.

Все 64 бита без округления

Максимальное беззнаковое 64-битное значение 18446744073709551615 обрабатывается точно. Двоичная запись дополнена до ширины слова, шестнадцатеричная — до нужного числа цифр. Восьмеричная и обе десятичные записи относятся к тому же результату.

Битовый сдвиг с проверкой позиций

Есть сдвиг влево, логический вправо и арифметический вправо. Список единичных позиций и их количество вычисляются по готовому слову, в том числе для отрицательной знаковой интерпретации. Число позиций не берётся по модулю 32.

Границы ввода и правила сдвига

Выход за диапазон — ошибка
Неотрицательный исходный шаблон допустим от 0 до 2^w−1 даже в режиме со знаком. Отрицательный ввод требует этого режима и не может быть меньше −2^(w−1). Слишком большое значение не обрезается молча: увеличьте ширину или исправьте число.
Результат ограничен шириной слова
NOT меняет ровно w бит. Сдвиг влево отбрасывает вышедшие старшие разряды. Число позиций — десятичное целое от 0 до w включительно. При w сдвиг влево и логический вправо дают ноль, а арифметический заполняет слово нулями или единицами по знаку.
Только однострочные целые
Операнд ограничен 256 символами: цифры ASCII, необязательный знак и подходящий основанию префикс 0b, 0o или 0x. Удаляются лишь крайние пробелы и табуляции. Внутренние разделители, переводы строк, дроби и десятичная экспоненциальная запись не допускаются.
Знак не переписывает исходный текст
Дополнительный код определяет десятичное чтение со знаком. Арифметический сдвиг доступен только в этом режиме; при отключении выбирается логический. Расширение текста −1 сохраняет −1, а текст 255 при расширении до 16 бит означает положительное 255.
Без вращений и вычисления выражений
Доступны 8, 16, 32 и 64 бита. Нет неограниченной ширины, вращений, NAND/NOR/XNOR, плавающей точки или формул. Не поддерживаются импорт именованных флагов, файлов и URL, а также постоянное хранение истории.

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

Чем различаются AND, OR и XOR?

AND оставляет единицу, если оба бита равны 1; OR — если хотя бы один равен 1; XOR — если биты различаются. С маской в B это позволяет выделять, устанавливать или переключать выбранные флаги A.

Как учитываются разрядность и знак?

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

Чем различаются левый и правый сдвиг?

Левый сдвиг переносит биты к старшим позициям и отбрасывает вышедшие за ширину. Правый логический заполняет старшие позиции нулями, а арифметический копирует знак. Количество позиций задаётся отдельно, от нуля до ширины включительно.

Зачем хранить флаги в одном числе?

Так удобно передавать компактные поля протокола, значения регистров и разрешения существующих API. В прикладном коде отдельные логические поля иногда понятнее. Здесь проверяются номера битов, а их смысл нужно брать из описания вашего формата.

Как выбрать 8, 16, 32 или 64 бита?

Выберите размер регистра, поля или целочисленного типа, с которым работаете. Если нужен только наглядный пример, начните с 8 бит. При ошибке диапазона проверьте реальный формат; увеличение ширины меняет положение знакового бита и результат NOT.

Результат вызывает вопросы?

Откройте побитовый калькулятор

Побитовый калькулятор позволяет проверить маску и изменить один флаг для сравнения. Когда текущий расчёт завершится, скопируйте или скачайте отчёт вместе с параметрами.