Реалізація віднімання сумматором

[Ред] Перетворення чисел для вирахування сумматором

Щоб реалізувати віднімання каскадним або двійковим каскадним сумматором. потрібно скласти на ньому зменшуване з протилежним по знаку від'ємником, так само як і при відніманні звичайних чисел. Тоді отримана сума буде різницею даних чисел:.

Інверсія знака записаного в двійковому вигляді числа відбувається точно так само, як і в додатковому коді.

Дане число потрібно інвертувати і додати до нього одиницю:.

Наприклад, число буде записано як, так як, а

[Ред] Оптимізація

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

[Ред] Схема реалізації вирахування сумматором

Схожі статті