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 бита) |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 | 1010 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 14 | 1110 |
| 15 | 1111 |
Когда двоичное число «переполняется», оно просто добавляет новый разряд слева — ровно как в привычной десятичной системе, когда после 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 с источника на приёмник и увидеть, как «загорится свет» на выходе. Это первый шаг к тому, чтобы научиться по-настоящему управлять током. Подробнее о том, почему машины говорят на языке двух состояний, читай во введении в схемотехнику, а дальше тебя ждут вентили И, ИЛИ, НЕ.