Двоичная система счисления

Двоичная система счисления — это позиционная система с основанием 2. В ней всего две цифры: 0 и 1. Звучит скромно, но именно на этих двух цифрах работает вся современная вычислительная техника — от смартфона до суперкомпьютера.

Почему компьютеры «думают» двоично

Внутри процессора информация передаётся электрическими сигналами. У сигнала проще всего различить два состояния: «есть напряжение» и «нет напряжения». Эти состояния удобно обозначить как 1 и 0.

Можно было бы придумать схему с десятью уровнями напряжения — по одному на каждую десятичную цифру. Но такая схема была бы капризной: малейшая помеха, и уровень 6 превращается в 7. Два состояния различать гораздо надёжнее, поэтому инженеры выбрали двоичную систему.

Одна двоичная цифра называется битом (от англ. binary digit). Группа из 8 бит — это байт. В одном байте помещаются числа от 0 до 255.

Как устроено двоичное число

Двоичная система — позиционная, как и привычная нам десятичная. Значение цифры зависит от её позиции: каждая следующая позиция «весит» в два раза больше предыдущей. Веса позиций — это степени двойки: 1, 2, 4, 8, 16, 32 и так далее.

Разберём число 1101 в двоичной системе:

Позиция (справа налево)3210
Цифра1101
Вес позиции2³ = 82² = 42¹ = 22⁰ = 1
Вклад в сумму8401

Складываем вклады: 8 + 4 + 0 + 1 = 13. Значит, двоичное 1101 — это десятичное 13.

Считаем по-двоичному

Счёт в двоичной системе идёт по тем же правилам, что и в десятичной: когда цифры заканчиваются, добавляем разряд. Только заканчиваются они быстро — уже после единицы.

ДесятичноеДвоичноеДесятичноеДвоичное
0081000
1191001
210101010
311111011
4100121100
5101131101
6110141110
7111151111

Обратите внимание на закономерность: круглые в двоичном смысле числа — 2, 4, 8, 16 — записываются как единица с нулями, точно так же, как 10, 100, 1000 в десятичной системе.

Как получить двоичную запись числа

Чтобы перевести десятичное число в двоичное, делим его на 2 и записываем остатки. Переведём число 13:

ДействиеЧастноеОстаток
13 ÷ 261
6 ÷ 230
3 ÷ 211
1 ÷ 201

Деление закончилось, когда частное стало равно нулю. Теперь читаем остатки снизу вверх: 1101. Получили ту же запись, что и раньше: 13 в десятичной системе — это 1101 в двоичной.

Частая ошибка — прочитать остатки сверху вниз. Запомните: первый остаток — это младший разряд, он стоит в самом конце числа.

Сколько чисел помещается в N бит

В одном бите помещаются два значения: 0 и 1. В двух битах — четыре: 00, 01, 10, 11. Каждый новый бит удваивает количество вариантов. Общее правило: N бит кодируют 2N разных значений.

  • 4 бита — 16 значений (от 0 до 15);
  • 8 бит (байт) — 256 значений (от 0 до 255);
  • 16 бит — 65 536 значений;
  • 32 бита — 4 294 967 296 значений.

Именно поэтому в настройках цвета каналы RGB принимают значения от 0 до 255: на каждый канал отведён ровно один байт.

Где двоичная система встречается на практике

  • Память и файлы. Размеры измеряются в байтах, килобайтах, мегабайтах — всё это степени двойки.
  • Права доступа в Unix. Запись вроде rwxr-xr-- — это по сути три тройки бит.
  • IP-адреса и маски сетей. Адрес IPv4 — это 32 бита, разбитые на четыре байта.
  • Флаги и битовые маски. Программисты хранят набор переключателей «да/нет» в одном числе, где каждый бит — отдельный флаг.

Что мы узнали

  • Двоичная система — позиционная система с основанием 2 и цифрами 0 и 1.
  • Компьютеры используют её, потому что два состояния сигнала различать надёжнее всего.
  • Вес каждой позиции — степень двойки: 1, 2, 4, 8, 16…
  • Чтобы перевести число в двоичную систему, делим его на 2 и читаем остатки снизу вверх.
  • N бит кодируют 2N значений: один байт — это числа от 0 до 255.
Проверьте себя
1. Как перевести десятичное число 13 в двоичную систему?
A1011
B1101
C1110
D1001
2. Сколько различных значений можно закодировать в одном байте (8 бит)?
A8
B16
C128
D256
3. Почему компьютеры используют двоичную, а не десятичную систему?
AДвоичные числа короче десятичных
BЭлектронным схемам надёжнее различать два состояния (есть/нет напряжения), чем десять
CДвоичная система была придумана раньше десятичной
DПроцессоры не умеют работать с числами больше 1
4. Что называется «битом»?
AГруппа из 8 двоичных цифр
BОдна двоичная цифра (0 или 1)
CМинимальная единица памяти в килобайтах
DРазряд шестнадцатеричного числа
Поддержать проект