+7(495)926-7456
+7(495)926-7456
Электронные компоненты  Мануалы 

0 1 2 3 4 5 6 [ 7 ] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

Далее выполняем перевод дополнительного кода [S]„ = (1, V) суммы - X + У в прямой код:

1- » О 1 О 1 1 О ~ 15]д,

О 1 О 1 о О 1 ~ V, . •

0 0 0 0 0 0 1 - + 1,

G 1 О 1 О 1 0~S= + 42,

1. О 1 О 1 О 1 О ~ [SJn-

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

§ 1.9. ОБРАТНЫЙ КОД И СУММАТОРЫ ДЛЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В ПРЯМОМ КОДЕ

Для суммирования чисел X и Y любого знака часто используется их представление в обратном коде, который определяется соотношением

О, <0,

" 1(1, X), если X =

где X = (Хп, Х}), X = {Хп, Xi). Число нуль в обратном коде имеет два представления (О, О, 0) - положительный и (1, 1, ...,1)- отрицательный нули. Прямой, дополнительный и обратный коды положительных чисел совпадают. Сравнив последнее выражение с выражением (1.15) для дополнительного кода, легко заметить, что обратный и дополнительный коды отрицательных чисел связаны соот-ношениш I-Х]о = [-Х]„-1, так как [-XJo = (1, X), а [-Х]„ = = (1, X) + 1.

Установим правило сложения чисел в обратном коде, используя связь между прямым и дополнительным кодами. Для этого покажем, что это правило определяется соотношением

[5]о = [Х]о + [Пв + А„+2. .-v.

где рп+2 - перенос в {п+2)-и разряд из знакового разряда, т. е. перенос рп2 следует подать на вход переноса первого разряда двоичного сумматора (рп+2 = О или 1). Будем полагать, что при сложении чисел X и У разрядная сетка не переполняется, а значит не изменяется знак суммы S на противоположный.

Справедливость правила сложения чисел в обратном коде для случаев X О и У = О (X = О и F 0) проверяется непосредственно на основании приведенного определения этого правила. Например, при X = У = О получим, что

[Slo = [0]o-h[0]o-hA„..2 = (l. 1, ... . 1) + (1. 1..... 1) + Ап...

Из данного соотношения видно, что из знакового разряда возникает перенос, т. е. р„2 = 1- Поэтому обратный код суммы (SJo =f= (1, 1,.,.



отрицательный нуль. Рассмотрим другие возможные случаи

сложения чисел X и Y.

Пусть X < О и F > О, т. е. суммируются положительные числа X и Y. В этом случае сумма S fe> О и дополнительный код суммы: lS]n == []д + 1д = (О, X) + (О, Y). Из данного выражения видно, что перенос из знакового разряда возникнуть не может, т. е. перенос Рп+2 = О, а значит ISlo = Шо + lY]o = IS], так как обратный и дополнительный коды положительных чисел совпадают. Таким образом, сформулированное правило сложения чисел в обратном коде справедливо при X > О и К > 0.

Пусть X > О и К < О, т. е. суммируются числа X и Y = - Y. В этом случае сумма S может иметь любой знак. Дополнительный код суммы определяется соотношением

IS\ = [1в + f- У]п = (О, X) -Ь (1, У)+1.

Если сумма 5 <; О, то перенос из знакового разряда не возникает (рп+2 - 0), так как иначе знак суммы изменился бы на противоположный. Поэтому обратный код суммы: [Slo = [Х]о + [-FJo = -1, как и должно быть на основании связи обратного и дополнительного кодов отрицательных чисел. Если же сумма S > О, то из выражения для дополнительного кода суммы следует, что должен возникать перенос из знакового разряда {рп+2 = О» так как в противном случае знак суммы изменился бы на противоположный. Поэтому обратный код суммы

lS]o = [1о + \-У\о+1= [Sl„,

как и должно быть, так как обратный и дополнительный коды положительных чисел совпадают. При Y = -X сумма 5 = О и обратный код суммы

[Slo = [Х]о + [-Х]о = (0. X) 4- (1. X) = (1, 1.....1).

т. е. в результате суммирования получается отрицательный нуль-Положительный и отрицательный нули при выполнении арифметических операций эквивалентны друг другу, т. е. появление отрицательного нуля не приводит к ошибкам в вычислительном процессе. Таким образом, при X > О, F < О сформулированное правило сложения чисел в обратном коде справедливо. Случай X < О и F > О аналогичен случаю X > О и Y <. О, поэтому рассматривать его нет необходимости.

Пусть, наконец, X < О и F < О, т. е. суммируются отрицательные числа. В этом случае сумма S <; О и дополнительный код суммы

IS\ = 1-Х1„ -Ь 1- К1д= (Ь X)+H-(i.F) -f 1.

Так как сумма S < О, то должен возникать перенос от знакового разряда {ргц.2 = 1). так как в противном случае знак суммы изменился бы на противоположный. Поэтому обратный код суммы: [Slo = = [-XJo -f I-FJo -Ь 1 = 15]д-1, как и должно быть на основании связи обратного и дополнительного кодов отрицательных чисел.



- =/

Таким образом, сформулированное правило сложения чисел в обратном коде справедливо при X < О и К < 0.

Преимуществом обратного кода является простота его получения. В частности, для получения обратного кода положительного числа X, умноженного на -1, достаточно проинвертировать все разряды обратного кода этого числа X. Недостатком использования обратного кода является меньшее быстродействие сумматора, так как перенос из последнего (знакового) разряда подается на вход переноса первого

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

/j сел, представленных в прямом коде.

В этом случае суммирование можно вы- полнить с помощью предварительного преобразования прямого кода в дополнительный или обратный код. Чтобы сумму представить в прямом коде, необходимо выполнить обратное преобразование. При использовании дополнительного кода указанные преобразования наиболее просто осуществляются с помощью ЛЭ, выполняющих операцию «сумма по модулю два», и двоичных сумматоров на основании правил, приведенных в § 1.8. Так как правила преобразования прямого кода в дополнительный и дополнительного в прямой идентичны, то эти преобразования выполняются одной и той же схемой. На рис. 1.19 показана схема преобразования четырехразрядных кодов (х - знаковый разряд). Поясним работу схемы.

Рис. 1.19. Схема преобразования четырехразрядного дополнительного кода в прямой код и четырехразрядного прямого кода в дополнительный код

ку,-

S If 7 1

SM w 8

SM w 8

>is-l

Рис. 1.20. Схема сумматора для четырехразрядных двоичных чисел, представленных в прямом коде



0 1 2 3 4 5 6 [ 7 ] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105