Перейти к содержанию
100% локально

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

Выполняйте операции AND, OR, XOR, NOT и сдвиги битов над двумя числами и смотрите результат бит за битом.

Входные данные
Выходные данные

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

Введите по одному числу в строке и выберите операцию — AND, OR, XOR, NOT, сдвиг влево или вправо, циклический сдвиг влево или вправо, инвертирование битов или обращение порядка битов, — чтобы мгновенно увидеть побитовый результат. Инструмент создан для случаев, когда десятичного вывода калькулятора недостаточно: проверка маски прав доступа, отладка поля флагов, понимание того, что на самом деле делает сдвиг байта, или проверка вручную вычисленного значения дополнительного кода.

Каждый операнд можно вводить и читать независимо в двоичной, восьмеричной, десятичной или шестнадцатеричной системе, так что шестнадцатеричный флаг из отладчика можно сразу перевести в десятичный или двоичный результат без отдельного пересчёта. Разрядность (8, 16, 32 или 64) задаёт, на скольких битах работает операция: значение, не помещающееся в эту разрядность, переполняется так же, как в настоящем регистре, и инструмент это отмечает. Режим со знаком читает и записывает дополнительный код, а для правых сдвигов можно выбрать арифметический (с сохранением знака) или логический (с заполнением нулями) сдвиг.

Циклические сдвиги, то есть циклический сдвиг влево и вправо, выталкивают биты с одного конца и возвращают их с другого в пределах выбранной разрядности, поэтому ничего не теряется, как при обычном сдвиге. Это ROL и ROR из кода хеширования и шифрования. Инвертирование битов меняет только позиции, перечисленные во второй строке, например 0, 3, 7, при этом самый правый бит считается нулевым. Обращение порядка битов зеркально отражает всю разрядность, так что младший бит становится старшим.

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

Всё работает локально в браузере: числа никогда не покидают ваше устройство. Результат можно скопировать, скачать как файл .txt или вернуть во ввод, чтобы выполнить следующую операцию.

FAQ

Что вводить в поле ввода?
По одному числу в строке: первый операнд в первой строке, а во второй — второй операнд, количество позиций сдвига или поворота либо позиции битов для инвертирования. Количество позиций всегда записывается обычным десятичным числом, в какой бы системе ни был ввод. NOT и обращение порядка битов читают только первую строку.
Как работают циклический сдвиг, инвертирование битов и обращение порядка?
Циклический сдвиг выталкивает биты с одного конца и возвращает их с другого в пределах разрядности: поворот байта 10010110 влево на 1 даёт 00101101. Инвертирование битов меняет позиции, перечисленные во второй строке, при этом самый правый бит считается нулевым. Обращение порядка битов зеркально отражает порядок всех битов в разрядности.
Что происходит, если число слишком велико для разрядности?
Оно переполняется до этой разрядности точно так же, как в реальном регистре — инструмент сообщает вам об этом вместо молчаливого усечения.
В чем разница между арифметическим и логическим сдвигом вправо?
Логический сдвиг заполняет освобожденные старшие биты нулями. Арифметический сдвиг заполняет их битом знака, поэтому отрицательное знаковое число остается отрицательным. Опция применяется только к сдвигу вправо со знаковыми значениями.
Мой ввод загружается где-нибудь?
Нет. Калькулятор побитовых операций полностью работает в вашем браузере — ничего из того, что вы вводите, не отправляется на сервер.