Калькулятор побитовых операций
Выполняйте AND, OR, XOR, NOT, левый или правый сдвиг на двух целых числах и просматривайте точный результат в десятичном, шестнадцатеричном и двоичном виде — используя арифметику BigInt с произвольной точностью, без усечения на 32 бита.
Ввод
Для левого / правого сдвига это величина сдвига (0–1024). Для NOT не используется.
Вывод
| Свойство | Значение |
|---|---|
| No data yet | |
Руководства
Калькулятор побитовых операций применяет логические операции непосредственно к двоичному представлению чисел, бит за битом, вместо того чтобы обращаться с ними как с обычными десятичными значениями. Этот инструмент выполняет AND, OR, XOR, NOT, левый сдвиг и правый сдвиг на двух целых числах и показывает результат в виде десятичного, шестнадцатеричного и двоичного — полезно для отладки битовых флагов, масок разрешений, сетевых подсетей, полей низкоуровневых протоколов или обучения тому, как работает двоичная логика.
Как это использовать
Введите Число A (десятичное, например 42, или шестнадцатеричное, например 0x2A — допускается ведущий -), выберите Операцию и введите Число B — второй операнд для AND/OR/XOR, или величину сдвига для Left/Right Shift (не используется для NOT, которая работает только с Числом A). Результат автоматически обновляется в виде десятичного, шестнадцатеричного и двоичного.
Операции
| A | B | AND | OR | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
- AND (
&) — бит равен1только если оба входных бита равны1. - OR (
\|) — бит равен1, если хотя бы один входной бит равен1. - XOR (
^) — бит равен1, если входные биты отличаются. - NOT (
~) — инвертирует каждый бит одного числа (унарная — Число B игнорируется). Для целого числаn,~nравно-(n + 1); например~5равно-6. - Left Shift (
<<) — сдвигает биты A влево на B позиций, заполняя нулями справа. ЭквивалентноA × 2^B. - Right Shift (
>>) — сдвигает биты A вправо на B позиций, отбрасывая младшие биты. Эквивалентно целочисленному делению на2^B, округлению в сторону отрицательной бесконечности (работает корректно и для отрицательных чисел).
Пример
12 AND 10: 12 это 1100 в двоичном, 10 это 1010. Сравнивая бит за битом: 1100 & 1010 = 1000, что равно 8 в десятичном. Те же два числа с OR дают 1110 (14), а с XOR дают 0110 (6).
Почему BigInt вместо обычных чисел
Многие калькуляторы побитовых операций приводят числа к 32-битным целым числам со знаком перед выполнением операции, потому что это именно то, что делают встроенные побитовые операторы JavaScript (&, |, ^, ~, << и >>) с обычными значениями Number — все, что больше примерно 2,1 миллиарда (2^31), молча усекается до неправильного значения. Этот инструмент использует вместо этого тип BigInt JavaScript, чьи побитовые операторы не имеют фиксированной ширины, поэтому результаты остаются точными независимо от того, насколько большие операнды.
FAQ
Почему NOT выдает отрицательное число? Целые числа концептуально представляют собой бесконечный поток ведущих 1 (отрицательные) или 0 (положительные) в форме дополнения до двух, поэтому инвертирование каждого бита неотрицательного числа всегда дает отрицательное число. Это стандартное поведение дополнения до двух, а не ошибка.
Есть ли беззнаковый правый сдвиг (>>>)? Нет. Беззнаковый сдвиг имеет смысл только для фиксированной ширины бита (заполняет нулями вместо расширения знака), а числа этого инструмента не имеют фиксированной ширины — это именно то, что позволяет ему правильно работать с произвольно большими значениями.
Какова максимально допустимая величина сдвига? Величины сдвига ограничены до 1024, чтобы каждый результат вычислялся мгновенно; сдвиг такой величины уже дает результат длиной более 1000 бит.
Могу ли я использовать шестнадцатеричный ввод? Да — добавьте префикс 0x перед любым числом (например 0xFF). Вывод всегда отображается в десятичном, шестнадцатеричном и двоичном виде независимо от того, какой формат вы ввели.
Конфиденциальность
Все вычисления выполняются локально в вашем браузере с использованием стандартного JavaScript — ничего из того, что вы вводите, не загружается и не сохраняется.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/bitwise-calculator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"numberA": "12",
"operation": "and",
"numberB": "10"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `bitwise-calculator` tool (Bitwise Calculator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.