Найти в Дзене
Kenen

Двоичная система счисления: достаточно ли для компьютеров только 0 и 1?

Раздел 0. Введение Все наслышаны, что компьютеры, смартфоны, консоли работают с какими-то нулями и единицами. Информация, которую они обрабатывают, представляется (или по-другому кодируется) с помощью двух цифр - 0 и 1. Но иногда возникают вопросы: почему это удобно, почему только 0 и 1, где находятся в электронике эти 0 и 1, если техника состоит всего лишь из проводов и электросхем. Здесь я хочу ответить на некоторые концептуальные вопросы, связанные с вычислительной техникой и её нулями и единицами. Раздел 1. Как мы передаем информацию? Стоит для начала поговорить о привычных всем способах. У нас есть речь, мы издаём звуки в определенной последовательности и приписываем разным наборам звуков какое-то значение. То же самое и с письмом, только вместо звуков написанные буквы. Это очень привычно для нас. Мы легко понимаем, что набор из букв "д", "о", "ж", "ь" в виде "дождь" означает воду из тучи.
Существуют и другие языки с другим набором символов и звуков. Мы строим последовательност
Оглавление

Раздел 0. Введение

Все наслышаны, что компьютеры, смартфоны, консоли работают с какими-то нулями и единицами. Информация, которую они обрабатывают, представляется (или по-другому кодируется) с помощью двух цифр - 0 и 1. Но иногда возникают вопросы: почему это удобно, почему только 0 и 1, где находятся в электронике эти 0 и 1, если техника состоит всего лишь из проводов и электросхем. Здесь я хочу ответить на некоторые концептуальные вопросы, связанные с вычислительной техникой и её нулями и единицами.

Раздел 1. Как мы передаем информацию?

Стоит для начала поговорить о привычных всем способах. У нас есть речь, мы издаём звуки в определенной последовательности и приписываем разным наборам звуков какое-то значение. То же самое и с письмом, только вместо звуков написанные буквы. Это очень привычно для нас. Мы легко понимаем, что набор из букв "д", "о", "ж", "ь" в виде "дождь" означает воду из тучи.

Существуют и другие языки с другим набором символов и звуков. Мы строим последовательности из этих звуков и букв и сопоставляем их с реальными объектами мира ( "rain", "дождь", "regen" - разные
кодировки, но одно значение). Некоторые последовательности символов не имеют смысла: например, слово "дломфель" ничего не означает (хотя теоретически мы могли бы этим словом что-то назвать, просто "дломфелю" не повезло попасть в наш лексикон)

Также у нас есть более абстрактные символы - числа. 1, 20, 264 не значат что-то конкретное (в отличие от "дождя", который означает вполне конкретное явление природы). Числами мы считаем, нумеруем, измеряем. Числа тоже привычны и знакомы всем нам.

Раздел 2. Непривычный подход к передаче информации. Двоичные кодировки.

Итак, мы передаём информацию традиционными способами - речью с множеством звуков, письмом с множеством символов и числами, состоящими из множества цифр. Но так ли нам необходимо много букв, звуков и цифр. Оказывается, что нет.

Проведём мысленный эксперимент. Мы придумываем новый язык и решили, что алфавит будет состоять из 3 букв - "ш", "g", "E".
Нам нужно придумать слова на нашем языке, начнём с названий объектов в космосе. Пусть для начала слова будут из 2 букв:
"шш" - Солнце
"шg" - Меркурий,
"шЕ" - Венера,
"gш" - Земля,
"gg" - Марс,
"gE" - Юпитер,
"Eш" - Сатурн,
"Eg" - Уран,
"EE" - Нептун.
Мы получили 9 слов из 2 букв, больше не получить - перебрали все сочетания для двухбуквенных слов. Но объектов в космосе ещё много, поэтому придётся придумывать слова из 3 букв:
"шшш" - Плутон,
"шшg" - Луна,
"шшE" - Церера,
"шgш" - Каллисто,
...
Был бы у нас алфавит не из 3, а из 10 букв, мы могли бы составить больше слов из двух букв, меняя состав двухбуквенного слова. Но с тремя буквами приходится увеличивать длину слов. И это важная деталь! Не можем больше менять
состав, увеличиваем длину.

Поэтому передавать информацию с помощью всего двух значений тоже возможно. В жизни это используется, например, в азбуке Морзе (где есть только точка и тире), в азбуке Брайля (азбука для слабовидящих, где есть только плоскость и выпуклость). У этих азбук есть только два возможных значения, и их хватает, чтобы закодировать всё, что нам нужно.

Азбука Морзе для английского алфавита
Азбука Морзе для английского алфавита

То есть человеку хватило бы и 3 или 2 букв в алфавите? Да. Другое дело, что в речи и на письме это просто неудобно. Но вот где это оказалось удобно, так это в компьютерах - о чём в следующем разделе.

Раздел 3. Двоичные кодировки на практике

Человечество развивалось, и ему захотелось передавать информацию на большие расстояния. Для этого нужна какая-то техника. Что же придумать? Есть электричество, которое быстро и далеко идёт по проводникам, но куски металла не могут говорить - они только могут проводить ток. Ток не скажет "привет" другу с другого континента. Да, не скажет. Ток либо идёт, либо нет. Идёт или нет.. Два состояния.. Два символа.. Двоичная кодировка.. Эврика!

Мы поняли, что нам хватит двух символов, чтобы говорить, и вот они - присутствие и отсутствие тока. Всё. Пусть два человека возьмут провод, и один другому будет отправлять электрические слова. "Ток есть, тока нет, ток есть" - это на нашем новом языке, например, значит "снег", а "ток есть, ток есть, ток есть" - это "дождь". Вживую мы будем смотреть на наличие или отсутствие тока, но вот на письме неудобно писать "ток есть", "тока нет". Поэтому на письме обозначим нулем состояние "тока нет" и единицей -"ток есть". Итак, 101 - снег, 111 - дождь. Вот нули и единицы появились. Эти цифры - просто удобный абстрактный способ передавать двоичную кодировку на письме.

Итак, компьютеры используют двоичную систему, потому что это просто. Технически просто. Ток есть, тока нет, третье состояние только усложнило бы техническую реализацию. И мы убедились, что проще не значит хуже - двух состояний вполне хватает.

Раздел 4. Некоторые вопросы, которые могут возникнуть


Почему не единичная система счисления? Зачем включать в алфавит отсутствие тока?

Отсутствие тока никуда не денется. Это значение уже есть. Оно делает кодировки короче, и когда нам нужна от компьютера какая-то логика, то 0 будет весьма полезен.

Что с обычными числами?

Нам привычна система, где есть 10 цифр, начинаем считать - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (цифры закончились), 10, 11, 12, и так далее. Что происходит, когда заканчиваются цифры? Увеличивается длина числа. В двоичной системе мы считаем так - 0, 1, (цифры закончились), 10, 11, 100, и так далее. Когда не хватает длины в одну цифру, переходим к длине в две цифры. Логика такая же, как и в примере со словами.

Как складывать двоичные числа? Как заставить компьютер запоминать информацию? Почему если компьютер работает с двумя значениями, на экране у нас привычные слова из 33 букв и числа из 10 цифр?

Люди научились на основе всего лишь двух состояний тока создавать логику, производить сложные математические операции. На деле любой человек, имея только батарейки, провода и лампочки, может сделать, например, сумматор для вычисления суммы двоичных чисел. Об этом всём я расскажу уже в следующих статьях. До встречи!