+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

держащее больше информации, условное графическое обозначение, показанное на рис. 1.18, б (в левом и правом полях указаны веса входов и выходов сумматора).. . .

§ 1.8. ПРЯМОЙ И ДОПОЛНИТЕЛЬНЫЙ коды

Прямым кодом числа Л= ±(х„, Xj) называется величина

f (0. К), если X > О, если X < О,

где X = Х, {Xn.l, X) = (х„+1, Хщ Xi). Таким образом, прямой код числа X произвольного знака получается добавлением к модулю числа IX I знакового разряда значение которого определяет знак числа.

Прямой код используется при умножении чисел, так как для этого необходимо перемножать модули чисел X и К ( и вычислять знак произведения z, который определяется только значениями знаков чисел X и Y. Знак произведения = x„i ф где т = 2п + 1.

Теперь перейдем к рассмотрению дополнительного кода. Пусть требуется выполнить вычитание двух целых положительных п-раз-рядных чисел: X = (х„, Xj) и F = (у„, j), где X > О, F > 0. Так как разность 5 = Х - У = X + (-У), то вычитание эквивалентно сложению с отрицательным числом - К. В десятичной системе счисления

п . .,

X =:х„• 2«-1 + х ,. 2«-2 4- . . . + х2 + Xi2« -=Хр2р-К

Максимальное значение X получается при Хр = 1 для всех р = 1, 2, п:

Таким образом, О < X < 2«-1 и О < F < 2«-1. Разность

S = X -У = X -2" + {2" -У) =Х -2" + W, (1.14)

где W = 2«-Г. Так как О < Г < 2«-1, то 0<W <Z2". Положительное число и? = 2"-F называется дополнением У до 2". Из соотношения (1.14) следует, что X-У + 2" = X + W, т. е. вычитание сводится к сложению, но результат надо скорректировать на 2" (вычесть из равности 2").

Из выражения (1.13) следует, что

2« = 22Р-1+1.



поэтому

2«-К= - 2 1 =

так как 1 - Ур = Ур. Поскольку О < И? < 2", то

W = (t«„, . . . и1)=СУп . ..., Ух) +1 = 1.

где F = (у„, +1 = (О, О, .... О, 1).

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

S = X -2" + « = (0-2«4-Х) + (- l-2« + lF).

Обозначим

(0-2«+Х) = (0. . . . X,), ( 1.2" 4 Г) = (1, t£i„, . . . , w).

Величина (О, х, .... Xj) называется дополнительным кодом положительного числа X (совпадает с прямым кодом), а величина (1, Wn, .... wi) - дополнительным кодом отрицательного числа-Y. Здесь значение (п + 1)-го разряда определяет знак числа (О - число положительное, 1 - число отрицательное). Если число У может иметь любой знак, то дополнитель«ый. код

(0, У),еслиУ>0. " 1 (1, W), если У<0,

где У = Fl = (у„, у,), W = (Wr,, wd = F + 1 = 2«-F. Дополнительный код отрицательных чисел можно представить также в виде [-Г]д = (1,Т)+ 1.

Из определения (1.15) следуют правила получения дополнительного кода отрицательных чисел (правила преобразования прямого кода в дополнительный). Для этого необходимо: 1) записать модуль У = \У\ отрицательного числа У в двоичной системе счисления; 2) взять инверсию от каждого разряда числа У, т. е. вычислить число F = (г/„, .... у 3). сложить полученное число У с единицей, т. е. вычислить число У + 1; 4) записать 1 в (п-Ь1)-й разряд.

В качестве примера рассмотрим отыскание дополнительного кода числа У = -24:

16 8 4 2 1 - веса разрядов

1 1 0 0 0 - jy = +24, G О 1 1 1 ~ Г , О О О О 1-+1,

О 1 О О а - Y -If \ = 1. О 1 О О О ~ 1Г]д



(для наглядности знаковый разряд будем отделять точкой).

Сложение двоичных чисел X и Y, представленных в дополнительном коде, основывается на теореме (приводится без доказательства): дополнительный код арифметической суммы S двух чисел X и Y любых знаков равен арифметической сумме дополнительных кодов чисел, т. е.: [S]„ = [X + F]„ = + причем при сложении чисел одинакового знака должно выполняться условие: ll - VY\ < 2"-1, т. е. разрядная сетка не должна переполняться. Если X > О, F > О и \Х\ + > 2«, то происходит потеря значения +2" и изменение знака остатка суммы на противоположный. Если же X < О и F < О, то потеря значения -2" и изменение знака остатка суммы на противоположный происходит при \Х\ + У" > > 2« + 1.

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

Рассмотрим теперь преобразование дополнительного кода (1.15) отрицательных чисел в прямой код. Так как W = 2"-Y, то F = 2" - -W. Поэтому

п п п

2Р-1 + 1 гЮр-2Р-={\~ гюр) 2J>- + 1 =

р=1 р=Г р=\

где W = (wn.....Wi). Из этого следует, что правила обратного перевода дополнительного кода в прямой аналогичны правилам перевода прямого кода в дополнительный.

В заключение рассмотрим пример вычисления суммы чисел X = = -Ь56 и Y = -98 {S = -f56 - 98 = -42) в дополнительном коде. Сначала необходимо представить числа X и Y ъ дополнительном коде: 64 32 16 8 4 2 1 - веса разрядов,

0 1 1 1 О О О ~ А = Ч- 56, 0. О 1 110 0 0 - [Х]д,

1 1 О О О Г О ~ V"1 У = -f 98,

О О 1 1 1 О 1 ~ К, О О 00 00 1~-Ь1,

О О 1 1 1 1 О ~ V -ь \=w,

1.0 0 11110- [К]д.

Затем вычисляем арифметическую сумму дополнительных кодов IX] и IY\:

0. О 1 I 1 ООО- [Х]д, • -+ 1. о о 1 1 1 1.0- [Г]д,

1. 1 о 1 О 1 1 О - [ХЫ-[Г1д=[5]я.



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