0 и 1: На каком языке говорят машины

Компьютеры кажутся невероятно умными, но на самом деле они совершенно не понимают человеческий язык. Они не знают букв, цифр в нашем привычном понимании и даже не догадываются, что такое мемы в интернете. Всё, что у них есть, — это электричество.

Сигнал 0 или 1 проходит по проводу от входа к выходу в симуляторе
Так выглядит сигнал в симуляторе: провод от входа к лампочке

Представь себе обычную лампочку и выключатель. У лампочки есть только два состояния: она либо горит, либо нет. Точно так же работает и процессор. Внутри него находятся миллиарды крошечных переключателей — транзисторов. Когда по проводу идёт ток (высокое напряжение), компьютер считает это за «да» или единицу (1). Когда тока нет (низкое напряжение) — это «нет» или ноль (0).

Эта система называется двоичным кодом (binary). Вся магия вычислительной техники строится на том, что с помощью комбинаций этих нулей и единиц можно закодировать абсолютно любую информацию: от простого числа до сложной 3D-графики в современных играх. А начинается всё с самого простого действия — подать сигнал по проводу.

Транзистор — переключатель, спрятанный в кремнии

Транзистор работает как кран в водопроводе: маленьким сигналом на «ручке» он управляет большим потоком. Но для нас важнее другое его свойство — он умеет находиться ровно в двух состояниях: «открыт» (ток течёт, это 1) или «закрыт» (ток не течёт, это 0). Промежуточного положения нет.

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

Бит и байт

Один такой сигнал — 0 или 1 — называется битом (от английского binary digit — двоичная цифра). Биты объединяют в группы: 8 битов — это байт. Каждый бит байта может принимать 2 значения, поэтому всего байт хранит 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 28 = 256 разных значений — числа от 0 до 255. Этого хватает, чтобы закодировать любую букву алфавита, цифру или символ.

Степени двойки: как считает двоичная система

В десятичной системе разряды — это 1, 10, 100, 1000. В двоичной — степени двойки: 1, 2, 4, 8, 16, 32, 64, 128. Каждая следующая позиция ровно вдвое больше предыдущей.

Разберём по шагам, как получить число 65. Идём от старшего разряда (128) к младшему (1):

128 больше 65 → пишем 0
64  помещается в 65 → пишем 1, остаток 1
32  больше 1 → пишем 0
16  больше 1 → пишем 0
8   больше 1 → пишем 0
4   больше 1 → пишем 0
2   больше 1 → пишем 0
1   помещается в 1 → пишем 1, остаток 0

Собираем разряды подряд: 01000001. Это и есть двоичная запись числа 65 — та самая, в которой хранится буква «А».

Первые 16 чисел в двоичной системе

Запомнить систему проще всего на маленьких числах:

ДесятичноеДвоичное (4 бита)
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
101010
111011
121100
131101
141110
151111

Когда двоичное число «переполняется», оно просто добавляет новый разряд слева — ровно как в привычной десятичной системе, когда после 9 идёт 10.

Почему буква «А» — это 01000001

Буквы в компьютере тоже числа. В таблице ASCII каждой букве назначен свой номер: «А» — это 65, то есть 01000001. Именно поэтому, когда ты нажимаешь клавишу на клавиатуре, контроллер отправляет процессору не букву, а байт из восьми нулей и единиц.

Весь текст этой статьи, каждый пиксель на экране и каждая нота в музыке — всё сводится к длинным цепочкам таких битов. Просто мы привыкли видеть результат уже «переведённым» на человеческий язык.

Резюме

Поупражняться в переводе чисел между двоичной и десятичной системами можно в конвертере систем счисления.

1. Компьютер понимает только два состояния: ток есть (1) и тока нет (0).

2. Транзистор — это переключатель с двумя состояниями, из них собраны все чипы.

3. Один бит — одна двоичная цифра; 8 битов — байт, который хранит 256 значений (0–255).

4. Двоичные разряды — это степени двойки: 1, 2, 4, 8, 16, 32, 64, 128.

5. Любые данные — текст, картинки, звук — хранятся как цепочки битов (буква «А» — это 01000001).

На уровне 1.1 тебе предстоит собрать самый первый провод: подать сигнал 1 с источника на приёмник и увидеть, как «загорится свет» на выходе. Это первый шаг к тому, чтобы научиться по-настоящему управлять током. Подробнее о том, почему машины говорят на языке двух состояний, читай во введении в схемотехнику, а дальше тебя ждут вентили И, ИЛИ, НЕ.

Попробовать в симуляторе →