Реалізація віднімання сумматором
[Ред] Перетворення чисел для вирахування сумматором
Щоб реалізувати віднімання каскадним або двійковим каскадним сумматором. потрібно скласти на ньому зменшуване з протилежним по знаку від'ємником, так само як і при відніманні звичайних чисел. Тоді отримана сума буде різницею даних чисел:.
Інверсія знака записаного в двійковому вигляді числа відбувається точно так само, як і в додатковому коді.
Дане число потрібно інвертувати і додати до нього одиницю:.
Наприклад, число буде записано як, так як, а
[Ред] Оптимізація
Очевидно, що реалізація перетворення в додатковий код окремим сумматором робить обчислення різниці в два рази повільніше, ніж обчислення суми. Щоб прискорити обчислення потрібно скористатися першим бітом перенесення в суматорі: для реалізації суми в нього посилають нуль, а для реалізації вирахування посилати в нього одиницю при відніманні і нуль при підсумовуванні. Замість того, щоб інвертувати від'ємник число, можна робити XOR біта першого перенесення з кожним бітом від'ємника числа. Таким чином, отримана схема буде працювати як для підсумовування, так і для вирахування, і при цьому віднімання не вимагає більше часу, ніж складання.