Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-13вопр.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
3.89 Mб
Скачать

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

Для n-разрядного двоичного числа дополнительный код определяем следующим образом:

где N* - дополнительный код N; N – число, дополнительный код которого ищем; n - число цифр в N. Если N = 1011, то

N* = 24 - 1011=10 000 – 1011 = 00101.

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

Для двоичного числа 1011 эта процедура дает

0100 – инверсия всех цифр

1 – добавление 1 к минимально значащему разряду

-----

0101

Допустим также любой другой метод для нахождения дополнительного кода числа. Например, можно предложить такой метод. Ищем первую справа 1 в числе. Все цифры, стоящие слева от этой 1, преобразовываем, а цифры справа, включая 1, не меняем.

Дополнительный код иногда называется дополнением по основанию 2, так как 2 – это основание двоичной системы исчисления.

4.8. Обратный код

Обратный код, или уменьшенное дополнение по основанию, определяем так:

N** = (2n - 1) – N ,

где N** - обратный код числа N. Для двоичного числа 1011

N** = (10 000 - 1) – 1011 = 0100 .

Простейший метод определения кода заключается в инвертировании всех двоичных цифр данного числа.

4.9. Двоичное представление чисел

В ЭВМ двоичное число может быть представлено одним из следующих трех способов:

а) в прямом коде;

б) в дополнительном коде;

в) в обратном коде.

В каждом из этих трех случаев для представления знака числа используют двоичный сигнал: 0 – для положительных чисел, 1 – для отрицательных. Знаковый бит размещают на левом конце числа и отделяют от числовой части запятой.

Характеризуя первый способ представления двоичных чисел в ЭВМ, следует сказать, что в самом левом разряде хранится знак, а остальные биты представляют модуль числ в двоичной форме. Например,

+ 13 = 0,1101 и - 13 = 1,1101.

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

В дополнительном коде положительные числа представляют так: слева - знаковый бит, значение которого равно 0, справа - модуль числа в двоичной форме. Что касается отрицательных чисел, то для них действует следующее правило: слева - знаковый бит, значение которого равно 1, справа - модуль числа в дополнительном коде. Следовательно,

+ 13 = 0,1101

и

- 13 = 1,0011.

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

+ 13 = 0,1101

и

- 13 = 1,0010.

4.10. Использование дополнительного кода для сложения и вычитания чисел

Сложение производится всегда одинаково, независимо от того, какие числа, положительные или отрицательные, участвуют в операции. Знаковые биты принимают участие в операции, а перенос из знакового ряда игнорируется. Если результат сложения положительный, то в знаковом бите 0, а модуль числа выражается в прямом коде. Если же результат сложения отрицательный, в знаковом разряде 1, а абсолютная величина числа выражается в дополнительном коде. Это проиллюстрировано на примерах, приведенных на рис. 4.7, а. В качестве слагаемых использованы положительные и отрицательные числа, абсолютные величины которых равны, соответственно, 5 и 7.

На рис. 4.7, б изображено устройство, предназначенное как для сложения, так и для вычитания чисел, представленных в дополнительном коде. Число А3А2А1А0 будет первым слагаемым при выполнении операции сложения, и уменьшаемым при вычитании, в то время как число В3В2В1В0 будет вторым слагаемым и вычитаемым, соответственно, для сложения и вычитания. Для реализации схемы необходимо иметь пять полных сумматоров, причем сумматор FA4 используется для сложения знаковых разрядов А4 и В4. Управляемые инверторы, реализованные на схемах ИСКЛЮЧАЮЩЕЕ ИЛИ, используются для инвертирования цифр В3В2В1В0 в том случае, когда М = 1, т. е. тогда, когда необходимо осуществить вычитание. Сигнал М также подается на вход, формирующий функцию переноса сумматора для наименьших значащих разрядов чисел. Когда М = 0, то C-1 = 0 и FA0 работает как полусумматор; однако, когда М = 1, C-1 = 1 и единица добавляется к наименьшему значащему разряду обратного кода числа, формируя тем самым дополнительный код.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]