Двоичное сложение и перенос

Седьмое вступление показывает, как машина складывает биты. Опыт — с двумя лампами Sum и Carry, дальше — прогноз для полного сумматора.

Опыт: складываем 1 + 1

В схеме два бита-слагаемых, A и B, и две лампы: Sum — младший разряд суммы, Carry — перенос. При A=1 и B=1 лампа Sum гаснет, а Carry загорается: получилось 10 в двоичной записи, то есть два. Единица ушла в перенос — как единица над следующим столбиком при сложении в столбик.

Правило полусумматора

Полусумматор собран из двух вентилей: XOR даёт Sum, AND даёт Carry. Его таблица истинности:

ABSumCarry
0000
0110
1010
1101

В двоичном столбике всё как в обычном: когда разряд переполнен, лишняя единица уходит в следующий разряд. Сложите так 11 + 1: младший разряд даёт 0 и перенос, старший разряд вместе с переносом снова даёт 0 и ещё один перенос. Результат — 100, то есть четыре.

Перенос: полный сумматор

Настоящий сумматор складывает три бита: A, B и перенос с прошлого разряда. Предскажите ответ для 1 + 1 + 1, прежде чем щёлкать: две единицы дадут перенос, последняя останется в Sum — итого 11, то есть три.

Зачем это нужно

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

Пройти вступление в игре · Гайд уровня 7 · Все вступления