Двоичное сложение и перенос
Седьмое вступление показывает, как машина складывает биты. Опыт — с двумя лампами Sum и Carry, дальше — прогноз для полного сумматора.
Опыт: складываем 1 + 1
В схеме два бита-слагаемых, A и B, и две лампы: Sum — младший разряд суммы, Carry — перенос. При A=1 и B=1 лампа Sum гаснет, а Carry загорается: получилось 10 в двоичной записи, то есть два. Единица ушла в перенос — как единица над следующим столбиком при сложении в столбик.
Правило полусумматора
Полусумматор собран из двух вентилей: XOR даёт Sum, AND даёт Carry. Его таблица истинности:
| A | B | Sum | Carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
В двоичном столбике всё как в обычном: когда разряд переполнен, лишняя единица уходит в следующий разряд. Сложите так 11 + 1: младший разряд даёт 0 и перенос, старший разряд вместе с переносом снова даёт 0 и ещё один перенос. Результат — 100, то есть четыре.
Перенос: полный сумматор
Настоящий сумматор складывает три бита: A, B и перенос с прошлого разряда. Предскажите ответ для 1 + 1 + 1, прежде чем щёлкать: две единицы дадут перенос, последняя останется в Sum — итого 11, то есть три.
Зачем это нужно
Полный сумматор, который вы соберёте на этом уровне, — кирпичик для сложения любых чисел. Восемь таких сумматоров в цепочке складывают два байта: перенос бежит от младшего разряда к старшему, как волна. Так складывают числа калькуляторы, процессоры и видеокарты.