Двоичная арифметика и побитовая логика: основы и расчеты
Двоичная система счисления — это позиционная система счисления с основанием 2, которая является фундаментом работы всех современных вычислительных систем. В этой системе используются всего два символа: 0 и 1. С помощью двоичного кода можно выполнять не только привычные арифметические операции, такие как сложение или деление, но и сложные логические преобразования, лежащие в основе работы процессоров и программных алгоритмов.
Арифметические операции в двоичной системе
Вычисления в двоичной системе строятся на тех же принципах, что и в десятичной, но ограничены использованием всего двух цифр: 0 и 1. Это делает правила арифметики предельно лаконичными, но требующими повышенного внимания к разрядам.
Фундаментальное правило сложения: комбинация $1 + 1$ всегда дает $0$ в текущем разряде и перенос единицы в следующий. Если к двум единицам добавляется единица переноса ($1 + 1 + 1$), в текущем разряде пишется $1$ и также осуществляется перенос далее.
Сложение. При вычислении «в столбик» мы суммируем цифры по разрядам, начиная справа. Если сумма в колонке превышает единицу, лишнее значение «уходит» в сопредельный левый разряд.
Вычитание. Главная сложность возникает, когда нужно вычесть единицу из нуля ($0 - 1$). В этом случае мы «занимаем» единицу у соседа слева. Занятая единица превращается в две единицы в нашем разряде. Одну мы отдаем (вычитаем), а вторую записываем в ответ (вниз). Если сосед слева сам оказался нулем, мы идем дальше влево до первой единицы. Все «пустые» нули, через которые мы прошли, пока искали заём, превращаются в единицы, а та единица, которую мы в итоге нашли, становится нулем.
Сложение:
$$\begin{array}{r} 101_2 \\ + \,\, 11_2 \\ \hline 1000_2 \end{array}$$
Вычитание:
$$\begin{array}{r} 110_2 \\ - \,\, 11_2 \\ \hline 11_2 \end{array}$$
Правило умножения и деления: умножение сводится к многократному сложению со сдвигом, а деление — к последовательному сравнению делителя с частью делимого и последующему вычитанию (метод «уголка»).
Работа с дробями. Калькулятор поддерживает вычисления с дробными числами. При этом положение запятой в результате определяется по строгим математическим правилам: итоговое количество знаков после запятой зависит от их количества в исходных операндах, что позволяет проводить точные расчеты в информатике.
Побитовые логические операции
Логические операции работают с числами иначе, чем обычная арифметика. Здесь каждый столбик цифр обрабатывается совершенно независимо: «единицы в уме» не переносятся к соседям, а заёмы у старших разрядов не производятся. Компьютер просто сравнивает пары битов, стоящих друг под другом, и записывает результат по строгим правилам.
Главные правила логики:
— И (AND): единица в ответе пишется только тогда, когда в столбике две единицы.
— ИЛИ (OR): единица пишется, если в столбике есть хотя бы одна единица.
— Исключающее ИЛИ (XOR): единица пишется только тогда, когда цифры в столбике разные.
Логическое И (AND) работает как строгий фильтр: если в паре есть хотя бы один ноль, то и в ответе будет ноль. Результат подтверждает «истинность» только при наличии двух единиц одновременно.
Логическое ИЛИ (OR) — более мягкая операция. Нам достаточно увидеть любую единицу (либо сверху, либо снизу, либо обе сразу), чтобы поставить в ответе единицу. Ноль получается только при сравнении двух нулей.
Исключающее ИЛИ (XOR) — это своего рода «поиск противоречий». Если биты в столбике одинаковые (два нуля или две единицы), они как бы гасят друг друга, давая в результате ноль. Если же биты разные (один и ноль), мы получаем единицу. Это свойство широко используется для защиты данных и в программировании.
Для наглядности рассмотрим, как эти операции применяются к числам $110_2$ (6) и $101_2$ (5):
Операция AND:
$$\begin{array}{r} 110_2 \\ \text{and} \,\, 101_2 \\ \hline 100_2 \end{array}$$
Операция OR:
$$\begin{array}{r} 110_2 \\ \text{or} \,\, 101_2 \\ \hline 111_2 \end{array}$$
Операция XOR:
$$\begin{array}{r} 110_2 \\ \text{xor} \,\, 101_2 \\ \hline 11_2 \end{array}$$
Чтобы лучше понять эти правила, представьте, что 1 — это истина, а 0 — это ложь. Тогда побитовые операции превращаются в логические высказывания. Например, при операции AND (И) результат будет «истинным» только если оба утверждения верны. Если мы сравниваем числа $101_2$ и $110_2$, то в первом разряде мы спрашиваем: «Правда ли, что в обоих числах здесь стоит единица?». Если ответ «да» — пишем $1$, если «нет» — пишем $0$. Таким образом, логика управляет каждым битом, превращая набор цифр в упорядоченный результат.
| Таблица перевода десятичных чисел в двоичные |
| 0 |
0 |
| 1 |
1 |
| 2 |
10 |
| 3 |
11 |
| 4 |
100 |
| 5 |
101 |
| 8 |
1000 |
| 10 |
1010 |
| 16 |
10000 |
| 32 |
100000 |
| 50 |
110010 |
| 64 |
1000000 |
| 100 |
1100100 |