ИСТОРИЯ · Как считают киты и осьминоги

Планета Роботов: класс сумматора

Планета Роботов: класс сумматора

📖 Читать ⬇ Скачать PDF

Робот хитро подмигнул лампочкой:

— Смотри, кот. Помнишь кирпичики из школы хранителей: И,
ИЛИ, НЕ? Мы из них складываем машинки — а одна машинка умеет
делать самое удивительное! — Он поставил на стол три коробочки и
щёлкнул выключателями. — Знаешь, что умеет делать эта штука?

— Что? — спросил я.

— Складывать! — Робот щёлкнул выключателями. — Помнишь, как мы
считаем: 0 и 1? Вот смотри:

Одна лампочка Другая лампочка Что получилось
0 0 0
0 1 1
1 0 1
1 1 10 (один переносим дальше!)

Из И, ИЛИ и НЕ мы собрали сумматор — машинку, которая складывает
две лампочки. А если поставить много таких машинок в ряд, они сложат
целое число!

— Как это — «поставить в ряд»? — не понял я.

— Смотри, — робот показал лампочками: 101 + 1. — Последняя лампочка
сложилась с единичкой: 1 + 1 = 10. «Ноль» остался, а «один» перенесли
в следующий разряд — как мы с тобой переносим десятки, когда считаем
столбиком! Получилось 110.

— Ого! — сказал я. — А если я сложу столбиком сам? 101 — это пять,
плюс один — шесть. А 110 — это шесть! Сошлось!

— Ну конечно сошлось, — улыбнулся робот. — Числа-то настоящие!

— А вычитать вы умеете? — спросил я.

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

— Зачем так сложно-то? — удивился я.

— А затем, что складывать сумматор уже умеет! Зачем строить вторую
машину, если можно одну попросить? Смотри: пять минус два. Пять —
это 101. Два — это 010. Переворачиваем двойку: 101. Прибавляем один:
110. А теперь складываем: 101 + 110 = 1011. Старшую лампочку
выкидываем — она нам больше не нужна! — и остаётся 011. А это три!
Пять минус два — три!

— Зеркальце какое-то! — покачал я головой. — Но считает!

— Зеркальце и есть! — кивнул робот. — Учёные называют это
«дополнение до двух». А мы зовём — «хитрое зеркальце».

— А умножать?

— Умножать мы умеем ещё проще! — Робот показал лампочку: 101.
— Пять, да? А теперь смотри: сдвигаю все лампочки на один шаг
влево
— и получается 1010!

— Это же десять! — ахнул я. — Пять умножить на два!

— Верно! — обрадовался робот. — Сдвинул влево — умножил на два.
Сдвинул вправо — поделил на два: 1010 → 101, десять поделить на
два — пять! Никакого умножения не нужно, просто передвинь лампочки!
Быстрее всего на свете. На два — сдвиг, на четыре — два сдвига,
на восемь — три!

Я сел на пол и задумался. Из трёх кирпичиков — И, ИЛИ, НЕ — роботы
собрали машинку, которая умеет складывать, вычитать через зеркальце
и умножать сдвигами. Это же целая счётная фабрика!

— Постой, — сказал я. — А где же у этой фабрики хранятся числа, пока
их складывают?

— А вот! — Робот показал на ряд коробочек-полочек. — Это регистры.
Числа живут здесь, пока с ними работают: пришло число на приём —
встало в регистр, посчиталось — вышло, на его место встало новое.

— А какой части больше всего? — спросил я.

— Главная в фабрике — счётная часть, — сказал робот. — Учёные
называют её АЛУ: арифметико-логическое устройство. Здесь живут
сумматоры и сдвиги. А рядом — регистры-полочки. Вместе это —
процессор! Он считает, помнит, сдвигает и складывает.
Представляешь: вся счётная фабрика — у тебя в кармане, в телефоне!

Я посмотрел на лампочки, на полочки-регистры и сказал:

— У кита — два пальца и терпение. У вас — счётная фабрика в процессоре.
А числа — одни и те же: пять, десять, три. Просто вы их так ловко
считаете!

— Ловкость — это когда умеешь одно делать быстро, — улыбнулся робот. —
А мы научились делать за них — И, ИЛИ, НЕ да сдвиг!

— Пойдём! — Робот загадочно подмигнул. — Есть у нас ещё один зал,
самый загадочный во всём музее. Таких чисел ты ещё не видел!

Попробуй сам! Сложи, как робот, столбиком: 101 + 1 = ?
(Начни с конца: 1 + 1 = 10, ноль пишем, один переносим —
получается 110!)

А теперь поиграй в сдвиги: 101 — это пять. Сдвинь влево — 1010,
это десять. Сдвинь ещё раз — 10100, это двадцать! Пять × 2 × 2
= 20. А теперь сдвигай обратно — считай, сколько получится?

И хитрое зеркальце: посчитай в уме, сколько будет 101 + 110,
если старшую лампочку выбросить. (Ответ: 011 — это три!)
А потренироваться наживую — сложение, вычитание, сдвиги и перевод
между системами — можно в тренажёре: Тренажёр двоичного счёта.


Продолжение: глава 13 — «Планета Роботов: зал великих чисел».

© про100.D · CC BY 4.0

← Планета Роботов: школа хранителей Планета Роботов: зал великих чисел →