Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА-1-2004(Комп.логика).doc
Скачиваний:
257
Добавлен:
07.02.2016
Размер:
7.96 Mб
Скачать

6.2 Представление отрицательных чисел

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

А – В = А + (-В)обр.

Замена вычитания сложением ставит проблему представления отрицательного числа в цифровом формате.

Один метод мы уже рассмотрели. Он использует прямой код числа , где машинное изображениеиспользует 1 (или 11) для обозначения «-».

Итак, прямой код отрицательного числа есть код, все цифровые разряды которого остаются неизменными, записанными в нормализованной форме, а в знаковой части числа записывается "1"(или 11 для модифицированного кода ).

Например: N = - 0,101110 то NM = 1.101110.

Положительное число в прямом коде не меняет своего изображения.

Например: N= 0,110101 то NM= 0.110101

В прямом коде в числовую сетку автомата можно записать , где n – количество разрядов. А диапазон чисел,для прямого кода, лежит в пределах 6.1

(1 – 2-n) NM (1 – 2-n). 6.1

Вторым методом представления отрицательных чисел есть представление их в обратном или дополнительном коде.

7 Коды бинарных чисел

7.1 Обратный код числа

Обратным кодом числа NM = 1, a1, a2,…, an называется такое машинное изображение числа, для которого ai = 0, если оно равнялось "1" и наоборот, аi = 1, если оно равнялось "0".

Иначе, обратным кодом двоичного числа является инверсное изображение этого числа, т.е. все разряды исходного бинарного числа, принимают обратное значение.

Например: N = - 0,101110 то No6 = 1,010001.

Обобщая правила образования обратного кода на все основания систем счисления можно считать, что обратный код отрицательного числа получается при вычитании из (q-1) цифр по каждому разряду числа за исключением знаковых разрядов, которые заменяются значением (q-1) т. е.

Например: -0,286357(10)пр=9,713642(10)обр

-0,1010111101(2)пр=1,0101000010(2)обр

Особо обратить внимание.

Если в знаковом разряде машинного представления находится (q-1), то все цифры числа, исключая знаковый, заменяются вычетом из (q-1) значения разряда; если в знаковом разряде находится нуль, то преобразование не производятся.

Ниже приведены примеры для различных систем счисления:

7.1.1 Переход от обратного кода к прямому

Переход от обратного кода к прямому производится по аналогичному правилу. Из значения (q-1) вычитается значение по каждому разряду, кроме знаковых. Для бинарной системы счисления (просто счастливый случай), можно перейти к прямому коду простым инвертированием разрядов обратного кода, кроме разрядов знаков.

7.2 Дополнительный код числа

Дополнительный код числа N= – 0,a1a2..an –такое машинное представление , в котором число записывается обратным кодомс прибавлением в младшем разряде 1.

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

-если в знаковом разряде находится (q -1), то все цифры числа, кроме разрядов знаков, заменяются вычетами из (q-1) значения разряда, а затем к цифре последнего младшего разряда добавляется единица;

-если в знаковом разряде находится 0 (или 00), то преобразование цифр не происходит.

Например:

  1. 9.243476(10)пр = 9.756523обр. + 0000001 = 9.756524(10)доп

  2. 1.0111000111(2)пр = 1.1000111000обр. + 0.0000000001 = 1.1000111001(2)доп

  1. –0,101110 = 1.101110 = 1.010001 + 0.000001 = 1.010010

  2. 0.425736пр = 0.425736доп

Таким образом, для положительных чисел прямой и дополнительный код совпадают, для отрицательного числа они различны. Для положительного числа, в разряде знака всегда устанавливают нуль(или 00), а отрицательного (q-1).

Обобщая, получаем математическую формулу перевода чисел в дополнительный код.

Отсюда Nдоп = q + (-N), т.е. дополнительный код является математическим дополнением числа до основания системы счисления.

Пример: 0,275936(10)пр = 0,275936(10)доп

Пример: –0,275936(10)пр=10,000000(10)+(–0,275936(10)доп) = 9,724064(10)доп