Двоичное сложение работает по тем же правилам, что и десятичное, только разрядов всего два. Таблица сложения: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (ноль с переносом единицы в старший разряд). Перенос (carry) добавляется к следующему разряду.
Пример: 0101 (5) + 0011 (3). Складываем справа налево: 1+1=10 (пишем 0, переносим 1), 0+1+перенос1=10 (пишем 0, переносим 1), 1+0+перенос1=10 (пишем 0, переносим 1), 0+0+перенос1=1. Результат: 1000 = 8. Верно.
Отрицательные числа представляют дополнительным кодом (two's complement). Чтобы получить −N в 8 битах: записываем N в двоичном виде, инвертируем все биты, прибавляем 1. Для −5: 5 = 0000 0101 → инверсия 1111 1010 → +1 = 1111 1011.
Красота дополнительного кода в том, что вычитание сводится к сложению: A − B = A + (−B). Процессору не нужен отдельный блок вычитания — хватает одного сумматора. Старший бит при этом служит знаком: 0 — число положительное, 1 — отрицательное.