Двоичная система счисления
Двоичная система счисления — это позиционная система счисления с основанием 2, в которой для записи чисел используются только два символа: 0 и 1. Каждый разряд (позиция) числа в двоичной системе соответствует степени числа 2. Двоичная система является фундаментальной для цифровой электроники и вычислительной техники, поскольку состояния «0» и «1» легко реализуются физически (например, отсутствие или наличие электрического сигнала, низкое или высокое напряжение, намагниченность или её отсутствие).
История
Идея использования двух символов для представления чисел восходит к древним культурам. Например, в Древнем Китае в «И цзин» («Книге перемен») использовались гексаграммы из двух типов линий (сплошная и прерывистая), которые можно рассматривать как двоичные коды. Однако формальная математическая система с основанием 2 была разработана значительно позже.
В XVII веке немецкий математик и философ Готфрид Вильгельм Лейбниц подробно описал двоичную систему в своём трактате «Explication de l’Arithmétique Binaire» (1703 год). Лейбниц увидел в ней не только математическое удобство, но и метафизический смысл, связывая 0 и 1 с понятиями «ничто» и «Бог». Он также отметил связь двоичной системы с гексаграммами «И цзин».
Несмотря на работу Лейбница, двоичная система оставалась в основном теоретическим курьёзом до середины XX века. Практическое применение стало возможным с развитием электроники. В 1937 году американский математик Клод Шеннон в своей магистерской диссертации «Символический анализ релейных и переключательных схем» показал, что алгебра логики (булева алгебра) и двоичная арифметика могут быть реализованы с помощью электрических реле и переключателей. Эта работа стала теоретической основой для проектирования цифровых схем и компьютеров. Первые электронные вычислительные машины, такие как ENIAC (1945 год), использовали десятичную систему, но уже последующие модели, в том числе EDVAC и машины фон Неймана, перешли на двоичную систему из-за её надёжности и простоты реализации.
Представление чисел
Правила перевода
Для перевода числа из десятичной системы в двоичную используется последовательное деление на 2 с записью остатков. Например, для числа 13: 13 ÷ 2 = 6 (остаток 1) 6 ÷ 2 = 3 (остаток 0) 3 ÷ 2 = 1 (остаток 1) 1 ÷ 2 = 0 (остаток 1) Остатки записываются в обратном порядке: 1101₂ = 13₁₀.
Для перевода из двоичной в десятичную каждый разряд умножается на соответствующую степень двойки: 1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13₁₀.
Дробные числа
Дробные числа в двоичной системе записываются с использованием двоичной точки. Перевод дробной части из десятичной системы производится последовательным умножением на 2 с выделением целых частей. Например, для числа 0,375: 0,375 × 2 = 0,75 (целая часть 0) 0,75 × 2 = 1,5 (целая часть 1) 0,5 × 2 = 1,0 (целая часть 1) Результат: 0,011₂ = 0,375₁₀.
Не все десятичные дроби имеют конечное представление в двоичной системе. Например, 0,1₁₀ в двоичной системе является бесконечной периодической дробью: 0,0001100110011...₂. Это является причиной некоторых ошибок округления в вычислениях с плавающей запятой.
Арифметические операции
Арифметика в двоичной системе проще, чем в десятичной, так как таблицы сложения и умножения состоят всего из нескольких правил.
Сложение
Правила сложения одноразрядных двоичных чисел:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0 (перенос 1 в следующий разряд)
Пример сложения: 1011₂ (11₁₀) + 1101₂ (13₁₀) --------- 11000₂ (24₁₀)
Вычитание
Вычитание может быть выполнено методом прямого вычитания с заимствованием или через сложение с дополнительным кодом. Второй метод широко используется в компьютерах, так как позволяет выполнять вычитание с помощью той же схемы, что и сложение.
Умножение
Умножение двоичных чисел сводится к последовательности сдвигов и сложений. Таблица умножения тривиальна:
- 0 × 0 = 0
- 0 × 1 = 0
- 1 × 0 = 0
- 1 × 1 = 1
Пример умножения: 101₂ (5₁₀) × 011₂ (3₁₀) -------- 101 1010 -------- 1111₂ (15₁₀)
Деление
Деление выполняется аналогично десятичному, но с использованием двоичных правил вычитания и сдвига.
Двоичная система в вычислительной технике
Представление целых чисел
В компьютерах для представления целых чисел обычно используется фиксированное количество бит (например, 8, 16, 32 или 64). Существуют два основных способа представления отрицательных чисел:
- Прямой код: старший бит отводится под знак (0 — положительное, 1 — отрицательное), остальные биты — модуль числа. Недостаток — два представления нуля (+0 и -0).
- Дополнительный код: отрицательное число получается инвертированием всех битов положительного числа и прибавлением 1. Этот метод позволяет выполнять сложение и вычитание единообразно и даёт единственное представление нуля. Дополнительный код является стандартным для современных процессоров.
Представление вещественных чисел
Для представления вещественных чисел используется стандарт IEEE 754 (числа с плавающей запятой). Число представляется в виде: Число = (-1)^S × M × 2^E, где S — знак (1 бит), M — мантисса (дробная часть), E — смещённый порядок (экспонента). Стандарт определяет форматы одинарной (32 бита) и двойной (64 бита) точности.
Логические операции
Помимо арифметики, двоичные числа используются для выполнения логических операций (булевой алгебры):
- И (AND): результат равен 1 только если оба операнда равны 1.
- ИЛИ (OR): результат равен 1, если хотя бы один операнд равен 1.
- НЕ (NOT): инвертирует значение (0 → 1, 1 → 0).
- Исключающее ИЛИ (XOR): результат равен 1, если операнды различны.
Эти операции реализуются логическими вентилями — базовыми элементами цифровых микросхем.
Связь с другими системами счисления
Восьмеричная система
Восьмеричная система (основание 8) тесно связана с двоичной. Каждая восьмеричная цифра соответствует трём двоичным разрядам (триаде):
- 0₈ = 000₂
- 1₈ = 001₂
- 2₈ = 010₂
- 3₈ = 011₂
- 4₈ = 100₂
- 5₈ = 101₂
- 6₈ = 110₂
- 7₈ = 111₂
Перевод между системами осуществляется простой группировкой.
Шестнадцатеричная система
Шестнадцатеричная система (основание 16) использует цифры от 0 до 9 и буквы A–F (A=10, B=11, C=12, D=13, E=14, F=15). Каждая шестнадцатеричная цифра соответствует четырём двоичным разрядам (тетраде):
- 0₁₆ = 0000₂
- 1₁₆ = 0001₂
- ...
- F₁₆ = 1111₂
Шестнадцатеричная система широко используется в программировании и документации для компактной записи двоичных данных, так как одна цифра заменяет четыре бита.
Применение
- Цифровая электроника: все современные компьютеры, микроконтроллеры, смартфоны и другие цифровые устройства работают на основе двоичной логики.
- Хранение данных: информация на жёстких дисках, твердотельных накопителях (SSD), оптических дисках и в оперативной памяти хранится в двоичном виде.
- Передача данных: сетевые протоколы (Ethernet, Wi-Fi) кодируют данные в виде последовательностей битов.
- Криптография: алгоритмы шифрования (AES, RSA) оперируют двоичными данными.
- Теория информации: понятие «бит» (двоичная единица информации) является основой для измерения количества информации (энтропия по Шеннону).
Критика и ограничения
Основным недостатком двоичной системы для человека является громоздкость записи чисел. Например, число 256₁₀ в двоичной системе записывается как 100000000₂ (9 цифр). Это затрудняет ручное чтение и запись. Для преодоления этого используются восьмеричная и шестнадцатеричная системы как более компактные формы представления.
Также, как отмечалось выше, не все десятичные дроби имеют точное двоичное представление, что может приводить к накоплению ошибок округления в численных расчётах. Для финансовых и других точных вычислений часто используются десятичные форматы с плавающей запятой (например, Decimal в языках программирования), которые эмулируют десятичную арифметику на двоичном оборудовании.
Источники
- Лейбниц Г. В. «Explication de l'Arithmétique Binaire» (1703).
- Шеннон К. «Символический анализ релейных и переключательных схем» (1937).
- Таненбаум Э., Остин Т. «Архитектура компьютера» — 6-е изд. — СПб.: Питер, 2013.
- Харрис Д., Харрис С. «Цифровая схемотехника и архитектура компьютера» — М.: ДМК Пресс, 2018.
- IEEE Standard for Floating-Point Arithmetic (IEEE Std 754-2019).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →