Двоичный код¶
Двоичный код — способ представления информации с использованием двух символов, как правило, цифр 0 и 1. Является основой системы счисления с основанием 2 и фундаментом цифровых вычислений: все данные в современных компьютерах — числа, текст, изображения, звук — хранятся и обрабатываются в двоичном виде. Простота двоичного представления связана с тем, что физически легко различимы два устойчивых состояния элемента (напряжение есть/нет, магнитная ориентация влево/вправо, ячейка заряжена/разряжена).
¶Система счисления
Двоичная система счисления относится к позиционным системам. Каждый разряд несёт значение степени двойки: в числе 1011 младший разряд равен 2⁰, следующий — 2¹, далее 2² и 2³. Десятичное число 11 записывается в двоичной системе как 1011, поскольку 1·8 + 0·4 + 1·2 + 1·1 = 11.
Перевод из десятичной системы в двоичную выполняется последовательным делением на 2 с записью остатков. Обратный перевод — суммированием степеней двойки, соответствующих единичным разрядам. Дробные числа представляются аналогично, но с отрицательными степенями двойки (2⁻¹ = 0,5; 2⁻² = 0,25).
¶Историческая справка
Идея двоичного представления восходит к работам немецкого математика Готфрида Лейбница, который в 1679 году опубликовал трактат «De numeris binariis» и впоследствии связал двоичную арифметику с китайской «Книгой перемен» (И-цзин). Лейбниц видел в двоичной системе философское соответствие принципу творения из ничего: ноль и единица символизировали пустоту и Бога.
На практику широкое влияние оказал работа Клода Шеннона «Алгебраическая теория связи» (1937), магистерская диссертация в Массачусетском технологическом институте, в которой было показано, что логические функции можно реализовать электрическими переключателями. Эта работа заложила основы цифровой электроники.
В 1930-е годы в СССР И. А. Акустика и другие исследователи разрабатывали двоичные схемы счётных машин; вклад в теорию двоичных устройств внесли работы С. А. Лебедева, создавшего в 1951 году ЭВМ БЭСМ.
¶Двоичный код в вычислительной технике
В компьютерах двоичная единица информации — бит (binary digit) — принимает значение 0 или 1. Группы бит образуют более крупные единицы:
| Единица | Размер | Примечание |
|---|---|---|
| бит | 1 | минимальная единица |
| байт | 8 бит | 256 комбинаций |
| кибибайт (КиБ) | 1024 байта | двоичный префикс |
| мебибайт (МиБ) | 1024 КиБ | — |
| гибибайт (ГиБ) | 1024 МиБ | — |
Физически биты реализуются в оперативной памяти как состояние конденсатора в ячейке DRAM или транзистора в ячейке SRAM, на жёстких дисках — как направление намагниченности участка поверхности, на оптических дисках — как наличие или отсутствие углубления (пита).
¶Представление данных
- Числа. Целые числа хранятся в дополнительном коде, что позволяет использовать одинаковые схемы сложения для положительных и отрицательных чисел. В 32-битном формате диапазон — от −2³¹ до 2³¹−1.
- Текст. Каждый символ кодируется числом по таблице кодировки. Кодировка ASCII использует 7 бит (128 символов), расширение Windows-1251 — 8 бит с поддержкой кириллицы. Юникод (UTF-8) использует от 1 до 4 байт на символ и покрывает десятки тысяч письменностей.
- Изображения. Растр представляется матрицей пикселей, каждый из которых кодируется числом яркости (для чёрно-белого) или тройкой значений RGB. Глубина цвета 24 бита даёт 16 777 216 оттенков.
- Звук. Аналоговый сигнал дискретизируется по времени (частота дискретизации, обычно 44,1 кГц для CD) и по амплитуде (глубина квантования, 16 бит для CD), после чего каждый отсчёт записывается в виде двоичного числа.
¶Логика и кодирование
Двоичный код тесно связан с булевой алгеброй: операции И, ИЛИ, НЕ над двоичными переменными реализуются логическими вратами на транзисторах. Современные процессоры содержат миллиарды таких врат.
Для защиты от ошибок при хранении и передаче данных применяются избыточные коды: код Хэмминга, циклические избыточные коды (CRC), коды Рида — Соломона. Они позволяют обнаруживать и исправлять искажения, возникающие из-за помех.
¶Двоичные коды вне вычислений
Понятие двоичного кода применяется и за пределами компьютеров. В телеграфии код Морзе — по сути двоичная система, где точка и тире соответствуют короткому и длительному сигналу. В оптике двоичные штриховые коды (штрих-коды EAN-13, QR-код) представляют данные чередованием чёрных и белых элементов. В теории связи двоичные последовательности модулируются на несущую частоту при передаче по каналам связи (модуляция 2-ФСК, QPSK, QAM).
¶См. также
- Система счисления
- Бит
- Булева алгебра
- Информация
¶Литература
- Лейбниц Г. В. О двоичной арифметике // Сочинения. — М.: Мир, 1982.
- Шеннон К. Алгебраическая теория связи // Работы по теории информации и кибернетике. — М.: ИЛ, 1963.
- Кнут Д. Искусство программирования. Том 4B: Комбинаторные задачи. — М.: Вильямс, 2007.
