Что делает этот калькулятор
Инструмент вычисляет три базовые побитовые логические операции — AND, OR и XOR — над двумя неотрицательными целыми числами. Каждый операнд можно ввести в десятичной (основание 10), шестнадцатеричной (16), восьмеричной (8), шестеричной (6) или двоичной (2) системе счисления. Результат каждой операции выводится сразу во всех пяти системах — вы сможете прочитать его так, как удобно для вашей задачи. Числа обрабатываются как беззнаковые и охватывают весь диапазон от 0 до \(2^{64} - 1\).
Как пользоваться
Введите первое число в поле x и выберите систему счисления, в которой оно записано. То же самое сделайте для второго числа y. Выбор системы влияет только на то, как разбирается введённый текст, — сама операция всегда выполняется над фактическим целым значением. В итоговой таблице приведены результаты AND, OR и XOR в строках для десятичной, шестнадцатеричной, восьмеричной, шестеричной и двоичной систем.
Как работает формула
Побитовые операции применяются к двоичному представлению каждого числа, разряд за разрядом. AND устанавливает бит результата в 1 только тогда, когда оба исходных бита равны 1. OR устанавливает бит в 1, если хотя бы один из исходных битов равен 1. XOR (исключающее ИЛИ) устанавливает бит в 1, когда ровно один из исходных битов равен 1 — поэтому он идеально подходит для проверки чётности и контрольных сумм: XOR значения с самим собой всегда даёт 0.
$$\begin{gathered} X = \text{parse}\!\left(\text{x},\ \text{base}_x\right), \quad Y = \text{parse}\!\left(\text{y},\ \text{base}_y\right) \\[1.2em] \text{AND} = X \mathbin{\&} Y, \quad \text{OR} = X \mid Y, \quad \text{XOR} = X \oplus Y \end{gathered}$$
Разбор примера
Возьмём \(x = 115\) и \(y = 234\) (оба в десятичной системе). В двоичном виде \(115 = 0111\,0011\), а \(234 = 1110\,1010\). AND даёт \(0110\,0010 = 98 = \text{hex } 62 = \text{octal } 142 = \text{senary } 242 = \text{binary } 1100010\). OR даёт \(1111\,1011 = 251 = \text{hex } fb = \text{octal } 373 = \text{senary } 1055\). XOR даёт \(1001\,1001 = 153 = \text{hex } 99 = \text{octal } 231 = \text{senary } 413 = \text{binary } 10011001\).
Частые вопросы
Поддерживаются ли отрицательные числа? Нет. На вход принимаются только неотрицательные беззнаковые целые числа; обработки знака в дополнительном коде (two's complement) нет.
Что будет, если ввести недопустимую цифру? Цифра, выходящая за пределы выбранной системы счисления (например, «8» в восьмеричной), игнорируется или считается нулём — поэтому проверяйте, какую систему вы выбрали.
Почему XOR используют для контрольных сумм? Если применить XOR к потоку байтов, а затем повторно к тому же потоку, получится 0. Поэтому XOR — простой и обратимый способ обнаружить изменение одного бита и вычислить чётность.
Таблица истинности побитовых операций
Побитовые операции работают с каждой парой битов независимо. Таблица ниже показывает все возможные комбинации двух входных битов \(A\) и \(B\) и результирующий выходной бит для операций AND (\(\&\)), OR (\(\mid\)) и XOR (\(\oplus\)).
| A | B | A AND B (\(A \mathbin{\&} B\)) | A OR B (\(A \mid B\)) | A XOR B (\(A \oplus B\)) |
|---|---|---|---|---|
| 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 когда биты отличаются. Когда два многобитовых целых числа объединяются, операция применяется к каждой выравненной позиции бита отдельно. Например, объединение \(12 = 1100_2\) и \(10 = 1010_2\) побитово дает AND \(=1000_2 = 8\), OR \(=1110_2 = 14\) и XOR \(=0110_2 = 6\).
Таблица преобразования оснований систем счисления
Перед вычислением AND, OR или XOR убедитесь, что ваши операнды введены в правильной системе счисления. Сенарная система — это основание 6 (цифры 0–5); восьмеричная — основание 8 (цифры 0–7); шестнадцатеричная — основание 16 (цифры 0–9, затем A–F). Таблица перечисляет десятичные значения 0–16 во всех пяти поддерживаемых системах счисления.
| Десятичная (10) | Шестнадцатеричная (16) | Восьмеричная (8) | Сенарная (6) | Двоичная (2) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 | 10 |
| 3 | 3 | 3 | 3 | 11 |
| 4 | 4 | 4 | 4 | 100 |
| 5 | 5 | 5 | 5 | 101 |
| 6 | 6 | 6 | 10 | 110 |
| 7 | 7 | 7 | 11 | 111 |
| 8 | 8 | 10 | 12 | 1000 |
| 9 | 9 | 11 | 13 | 1001 |
| 10 | A | 12 | 14 | 1010 |
| 11 | B | 13 | 15 | 1011 |
| 12 | C | 14 | 20 | 1100 |
| 13 | D | 15 | 21 | 1101 |
| 14 | E | 16 | 22 | 1110 |
| 15 | F | 17 | 23 | 1111 |
| 16 | 10 | 20 | 24 | 10000 |
Вы можете проверить любое отдельное значение в другой системе счисления с помощью двоичного 1100 конвертера, который возвращает десятичное 12.
Определения и глоссарий
- Бит
- Наименьшая единица цифровой информации, принимающая значение 0 или 1. Каждое целое число в этом калькуляторе обрабатывается как последовательность битов.
- Побитовая операция
- Операция, применяемая независимо к каждому соответствующему биту двух операндов. AND, OR и XOR — три объединяющие операции, вычисляемые здесь.
- Основание (радикс)
- Количество различных цифр, которые использует позиционная система счисления. Десятичная система имеет основание 10, двоичная — основание 2, восьмеричная — основание 8, сенарная — основание 6, шестнадцатеричная — основание 16. Каждая позиция цифры представляет степень основания.
- Беззнаковое целое число
- Неотрицательное целое число без знакового бита; все биты вносят вклад в величину. Этот инструмент принимает только беззнаковые значения.
- Сенарная система
- Нумерация с основанием 6, использующая цифры 0–5. Позиционные значения — это степени числа 6, например \(24_6 = 2\times6 + 4 = 16\).
- Шестнадцатеричная система
- Нумерация с основанием 16, использующая цифры 0–9 и буквы A–F (где A=10 … F=15). Каждая шестнадцатеричная цифра соответствует ровно четырем двоичным битам.
- Восьмеричная система
- Нумерация с основанием 8, использующая цифры 0–7. Каждая восьмеричная цифра соответствует ровно трем двоичным битам.
- Маска
- Постоянное значение, используемое с побитовой операцией для выбора, установки или очистки определенных битов — например, операция AND с \(0\text{F}_{16}\) сохраняет только четыре младших бита.
- Четность
- Является ли количество 1-битов в значении четным или нечетным. XOR является основой проверок четности: операция XOR всех битов равна 1 для нечетной четности и 0 для четной четности.