Как пользоваться
- Введите первое значение в поле Первое значение (A), а второе — в Второе значение (B), если операция его использует.
- Выберите Система счисления, в которой введены значения, и Операцию.
- Для сдвига или вращения задайте Сдвиг или вращение на. Выберите Ширину, которую должен иметь результат.
- Прочитайте результат в Шестнадцатеричное, Десятичное (без знака) и Двоичное, а также таблицу побитно под ними.
Логические операции
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 г..