Схемы вычитания

Вычитание двух чисел обычно сводится к операции сложения:

D = A – B = A + (2 n – B) 2 n, (5.3)

где 2 n – B = + 1 — дополнение В до числа 2 n, которое легко получить без помощи специальных схем, использующих вычитание.

Таким образом, вычитание можно осуществить, инвертируя число В, суммируя полученный результат с А и еще с одной 1 и вычитая 2 n. Вычитание 2 n достигается весьма просто — путем инверсии сигнала переноса. Схема вычитания четырехразрядных чисел показана на рис. 5.19.

При А ³ В получаем V = 0 (в чем легко убедиться на конкретных численных примерах). При A < B получаем V = 1и число D является дополнением А – В до 24 = 16. Выходной сигнал можно рассматривать как пятиразрядное число со знаком V в дополнительном коде.

На рис. 5.20 показано устройство, которое используется в цифровых следящих системах для выделения сигнала рассогласования между кодом задатчика А и кодом сигнала обратной связи В. Знак sign(A – B) определяет направление компенсирующего воздействия на регулирующий орган, а модуль разности (А – В) R (r 0 – r 7) — скорость этого воздействия. Наличие нулей во всех разрядах А соответствует одному крайнему значению регулируемой величины, а единиц – другому.

При А > B появляется единица на выходе переноса сумматора, в знаковом разряде 0, а (здесь плюс – знак арифметического сложения). Элементы «Исключающее ИЛИ» работают как повторители выходных сигналов сумматора.

При A £ B в старшем разряде сумматора 0 (читателю предлагается проверить это на конкретном численном примере). Знак равен 1, а Элементы «Исключающее ИЛИ» работают как инверторы выходных сигналов сумматора.

Выходной сигнал устройства можно рассматривать как девятиразрядное двоичное число со знаком в прямом коде.

Обычный сумматор может использоваться для сложения чисел со знаком, представленных в дополнительном коде. На его выходе формируется дополнительный код суммы. При сложении, например, 8-разрядных двоичных чисел со знаком с помощью 8-разрядного сумматора (его можно построить на двух микросхемах К555ИМ6) получаем на выходе 8-разрядную сумму в дополнительном коде (перенос в 9-й разряд игнорируется). При этом разрядная сетка не должна переполняться, т. е. сумма модулей для чисел одинакового знака не должна превышать 127. Старший разряд восьмиразрядных слагаемых отображает знак числа (0 — для положительного, 1 — для отрицательного). Семь младших разрядов отображают модуль числа. Дополнительный код положительного числа соответствует его обычному представлению в двоичном коде. Для получения дополнительного кода отрицательного числа нужно проинвертировать код положительного числа и прибавить единицу в младший разряд. Приведенный ниже пример показывает, что при подаче на входы сумматора дополнительных кодов чисел +100 и –16, на выходе получим код числа +84.

01100100

101010100 = +84

девятый разряд игнорируется результат положительный


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: