Калькулятор побитовых операций
AND, OR, XOR, NOT и битовые сдвиги над 32-битными целыми, с побитовой визуализацией
Операнды
Операция
Результат
12 & 1032-битное представление результата
Значения трактуются как 32-битные целые числа. Десятичное со знаком интерпретирует старший бит как знак (дополнительный код); десятичное без знака читает все 32 бита как положительную величину. Сдвиг вправо логический (слева заполняется нулями).
Об этом инструменте
Калькулятор побитовых операций позволяет разработчикам и студентам информатики вычислять AND, OR, XOR, NOT и сдвиги влево и вправо над двумя целыми числами. Вводите каждый операнд в двоичной, десятичной или шестнадцатеричной системе, и результат отображается сразу во всех трёх системах вместе с живой 32-битной картой, показывающей, какие именно биты меняются. Он создан для отладки флагов и битовых масок, работы с правами доступа, упаковки данных и изучения того, как компьютеры обрабатывают биты на самом низком уровне.
Как пользоваться
- 1 Введите операнд A и выберите его систему счисления (двоичную, десятичную или шестнадцатеричную).
- 2 Выберите операцию: AND, OR, XOR, сдвиг влево/вправо или унарную NOT.
- 3 Для операций с двумя операндами введите операнд B; для сдвига — на сколько битов сдвигать.
- 4 Прочитайте результат в десятичном виде со знаком и без знака, в шестнадцатеричном и двоичном, и рассмотрите выделенные биты.
Как это работает
Побитовые операции работают над каждым из 32 битов независимо. AND устанавливает бит результата в 1 только когда оба входных бита равны 1, поэтому используется для маскирования (сохранения) выбранных битов. OR устанавливает бит в 1, когда хотя бы один входной бит равен 1, поэтому используется для включения флагов. XOR устанавливает бит в 1 только когда входные биты различаются, что идеально для переключения битов и простых контрольных сумм. NOT унарна: она инвертирует каждый бит, превращая 0 в 1 и 1 в 0. Сдвиг влево (<<) перемещает все биты к старшему концу и заполняет нулями, умножая на два на каждой позиции; логический сдвиг вправо (>>) перемещает их в обратную сторону и тоже заполняет нулями. Поскольку отрицательные числа хранятся в дополнительном коде, одни и те же 32 бита можно читать как значение со знаком (старший бит — знак) или без знака, поэтому этот инструмент показывает оба. Например, 12 AND 10 = 8, 12 OR 10 = 14, 12 XOR 10 = 6, 1 << 4 = 16, а NOT 0 даёт все единицы, то есть -1 со знаком или 4294967295 без знака.
Частые вопросы
В чём разница между AND, OR и XOR?
AND сохраняет бит только когда он установлен в обоих операндах, поэтому используется для очистки или проверки битов маской. OR устанавливает бит, когда он есть хотя бы в одном операнде, поэтому используется для включения битов. XOR устанавливает бит только когда он есть ровно в одном операнде, что переключает биты и выявляет различия.
Почему NOT 0 показывает -1 и одновременно 4294967295?
NOT инвертирует все 32 бита, поэтому 0 становится тридцатью двумя единицами. Прочитанный как целое со знаком в дополнительном коде, этот шаблон равен -1; прочитанный как 32-битное целое без знака — 4294967295. Оба описывают одни и те же биты.
Что на самом деле делает сдвиг влево или вправо?
Сдвиг влево на n перемещает каждый бит на n позиций к старшему концу и заполняет нулями, умножая на 2 в степени n. Логический сдвиг вправо на n перемещает их в обратную сторону и заполняет нулями, деля неотрицательные значения на 2 в степени n.
Почему всё ограничено 32 битами?
Побитовые операторы JavaScript и большинство целочисленных регистров процессоров работают с 32-битными словами, и этот инструмент следует этому. Величина сдвига берётся по модулю 32, а значения циклически переносятся в пределах 32-битного диапазона, точно как в C, Java или JavaScript.
Связанные инструменты и применения
Чтобы преобразовать одно значение между двоичной, восьмеричной, десятичной и шестнадцатеричной системами, используйте конвертер систем счисления. Для кодов символов смотрите конвертер ASCII, а для цветовых масок — конвертер цветовых кодов.