Главная > Разное > Цифровые устройства
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Дополнительный код.

Пусть требуется найти разность двух целых положительных n-разрядных чисел:

где Так как разность

то вычитание эквивалентно сложению с отрицательным числом —У. В двоичной системе счисления

Максимальное значение X получается при для всех

Таким образом, Разность

где Так как значения то Положительное число называется

дополнением Из соотношения (6.37) следует, что вычитание сводится к сложению, но результат надо скорректировать на (вычесть из разности число Из выражения (6.36) следует, что

поэтому

так как Поскольку то

где

Разность (6.37) можно представить в виде:

где

Величина называется дополнительным кодом положительного числа. X (совпадает с прямым кодом), а величина дополнительным кодом отрицательного числа . Здесь значение разряда определяет знак числа (0 — число положительное, 1 — число отрицательное). Из (6.39) следует, что знаковый разряд имеет вес

Если число может иметь любой знак, то дополнительный

где Дополнительный код отрицательных чисел можно записать также в виде -разрядном (с учетом знакового разряда) дополнительном коде могут быть представлены числа —

Из определения (6.40) следуют правила получения дополнительного кода отрицательных чисел (правила преобразования прямого кода в дополнительный). Для этого необходимо: записать модуль отрицательного числа в двоичной системе счисления; взять инверсию от каждого разряда числа,

т.е. вычислить число сложить полученное число с единицей, т. е. вычислить число записать 1 в разряд.

В качестве примера рассмотрим отыскание дополнительного кода числа

Введем обозначения:

где знаковые разряды; дополнения до модули соответствующих чисел.

Теорема. Дополнительный код арифметической суммы двух двоичных чисел любых знаков равен арифметической сумме дополнительных кодов чисел, т. е.

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

Доказательство. Требуется показать, что

при отсутствии переполнения разрядной сетки. Для знакового разряда суммы имеет место соотношение:

где перенос из разряда.

Для доказательства теоремы необходимо рассмотреть три комбинации значений слагаемых: (случай переименованием чисел сводится к первой комбинации),

1. Пусть тогда

Если то и

где

Если

где

2. Пусть тогда

Если то и

где

Если же то и

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

3. Пусть тогда

где

Если

где

Если

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

Из теоремы следует, что для сложения и вычитания двоичных чисел, представленных в дополнительном коде, может быть использован один и тот же двоичный сумматор. Эта же теорема справедлива и для сложения дробных двоичных чисел любого знака, представленных в дополнительном коде, так как положение запятой в записи числа не изменяет свойств дополнительного кода. Операции, выполняемые двоичными сумматорами и синтез последовательного двоичного сумматора, были рассмотрены в § 4.3.

Рассмотрим теперь преобразование дополнительного кода (6.40) отрицательных чисел в прямой код. Так как дополнение то Поэтому

где Из этого следует, что правила перевода дополнительного кода в прямой аналогичны правилам перевода прямого кода в дополнительный.

Рассмотрим пример вычисления суммы в дополнительном коде. Сначала необходимо представить числа в дополнительном коде:

Затем вычисляется арифметическая сумма дополнительных кодов

Далее выполняем перевод дополнительного кода суммы в прямой код:

Переполнение разрядной сетки может наступить только при сложении чисел одинакового знака. Покажем, что функция где перенос в знаковый разряд и перенос из знакового разряда, равна 1 только при переполнении разрядной сетки переполнение). Пусть знаковые разряды чисел и их суммы знак). Если числа разного знака, то и

Если же числа имеют одинаковый знак, то

(значения следуют из теоремы сложения чисел в дополнительном коде). Отсюда

Прямой, дополнительный и обратный коды положительных чисел совпадают. Легко заметить, что обратный и дополнительный коды отрицательных чисел связаны соотноухением

<< Предыдущий параграф Следующий параграф >>
Оглавление