Момент, где отдельные гейты блока 2 впервые складываются в нечто узнаваемо "компьютерное" — то, что буквально происходит внутри процессора, когда в коде пишешь "a + b".
| Пример | Результат |
|---|---|
| 0 + 0 | 0 |
| 0 + 1 | 1 |
| 1 + 0 | 1 |
| 1 + 1 | 10 (в двоичной системе — перенос в следующий разряд) |
Принимает два однобитных числа (A и B), выдаёт два результата: сумму (Sum) и бит переноса (Carry).
Sum = A XOR B (истина, когда биты различаются — именно применение №1 XOR из главы 09). Carry = A И B (перенос возникает только когда оба бита единицы одновременно).
| A | B | Sum | Carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Полусумматор не учитывает перенос, пришедший из предыдущего разряда при сложении многоразрядных чисел, — он справляется только с самым простым однобитным случаем без учёта контекста соседних разрядов.
Принимает уже три входа: A, B, и перенос из предыдущего разряда (Carry-in), выдаёт сумму и новый перенос (Carry-out). Строится из двух полусумматоров плюс одного элемента ИЛИ, объединяющего два возможных источника переноса в один финальный сигнал.
| A | B | Carry-in | Sum | Carry-out |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Готовый одиночный полный сумматор реже продаётся отдельно — чаще встречается уже в составе более комплексных микросхем, например 7483 (4-битный двоичный полный сумматор), сразу содержащей несколько соединённых между собой сумматоров.
Соединяя выход переноса (Carry-out) одного полного сумматора со входом переноса (Carry-in) следующего, получаешь цепочку, способную складывать числа любой разрядности — каждый разряд ждёт готового результата переноса от предыдущего, "просачивающегося" (ripple) по цепочке слева направо. Именно так были устроены арифметико-логические устройства (АЛУ) ранних процессоров, и тот же базовый принцип лежит в основе более быстрых современных схем сложения.
Когда в коде пишешь простое "a + b", именно эта цепочка сумматоров (или её более быстрый современный эквивалент) физически выполняет операцию внутри процессора — прямой мост между абстрактной строкой кода и реальным электрическим железом, выполняющим её.
Следующая глава — триггеры (flip-flops): как логические элементы, до сих пор не имевшие "памяти" вообще, впервые обучаются запоминать состояние во времени.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.