+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

Пусть на вход подается прямой код

(О, Хз, Xj, Xj), если X > О, (1, Хз, Xg, Xi), если X <о-

Если Х4 = О (число положительное), то ар = Хр ф О = х, и Рр = Хр 1, 2, 3), т. е. код не изменяется. Если Х4=1, то ар= Хр ф] = Хр и сумматор производит вычисление суммы (1, X) + 1 = (Ьхз, х, Зс) + 1 (Р4 -знак числа). Отрицательный нуль прямого кода переводится при этом в дополнительный код нуля. Если на вход данной схемы подать дополнительный код, то на выходе получим прямой код.

На рис. 1.20 показана схема сумматора для четырехразрядных чисел X и Y, представленных в прямом коде. С помощью сумматора Di производится преобразование прямого кода числа X в дополнительный код. Сумматор используется как для преобразования прямого кода числа У в дополнительный, так и для сложения дополнительных кодов чисел X и Y. С помощью сумматора D3 производится преобразование дополнительного кода суммы в прямой (если это требуется).

Для выполнения рассмотренных в § 1.8 и 1.9 операций можно использовать микросхему 155ИПЗ, представляющую собой арифметико-логическое устройство (АЛУ), реализующее 16 логических и 16 арифметических операций. Выбор операции, выполняемой АЛУ, задается пятиразрядным кодом, подаваемым на его управляющие входы.

§ 1.10. ДЕСЯТИЧНЫЕ СУММАТОРЫ

Десятичные сумматоры применяются в тех случаях, когда числа X и Y представлены в десятичной системе счисления и нежелательно, вводить преобразование десятичных чисел в двоичные. В этом случае можно использовать независимое преобразование каждой десятичной цифры в код с избытком 3 [48]. Это проще выполнить, чем преобразование всего десятичного числа в двоичный код.

Для представления любой десятичной цифры О, 1, 9 достаточно использовать четыре символа О и 1. На практике широко применяется четырёхразрядный код 8-4-2-1 (двоично-десятичный код). Числа 8, 4, 2 и 1 являются весами разрядов. Таким образом, запись десятичной цифры в коде 8-4-2-1 совпадает с записью двоичных чисел от О до 9 (например, 0101 5), а «-разрядное десятичное число представляется с помощью тетрад, каждая из которых состоит из четырех двоичных разрядов (например, 2830010.1000.0011). Такое представление десятичных чисел будем считать исходным.

Код 8-4-2-1 неудобен для выполнения арифметических операций, в частности из-за сложности обнаружения переноса в следующую тетраду при Хр + Yp > 10 (Хр и Fp - 7-ые разряды десятичных чисел X и Y). Код 8-4-2-1 для числа Хр + 3 называется кодом с избытком 3 числа Хр и обозначается через [Хр] [46]. Для сложения четырехразрядных кодов {Xpj и \Yp] можно использовать четырехразрядные двоичные сумматоры, описанные выше. Рассмотрим особенности сложения положительных чисел Хр и Кр в коде с избытком 3.



-p.,

Если Хр + Fp > 10, to {Xp} + {Fp} = Xp + 3 + Fp + 3 > 16 и на выходе двоичного сумматора возникает перенос (р = 1 на рис. 1.18, а) в следующий двоичный разряд, а остаток суммы будет равен (Хр) + {Fp} - 16, в то время как он должен быть равен {Хр + + Fp - 10} = Хр + Fp - 10 + 3 = {Хр} + {Fp} - 16 + 3. Поэтому к остатку суммы {Хр} + {Fp} - 16 следует прибавить число 3.

Если Хр + Fp < 10, то {Хр} 4- {Fp} < 16 и на выходе двоичного сумматора перенос отсутствует (/54 = 0 на рис. 1.18, а), а сумма {Хр} + {Fp} = {Хр + Fp} + 3. Поэтому из суммы {Хр} + {Fp}

следует вычесть число 3, чтобы получить величину {Хр+ Fp, которая является кодом с избытком 3 суммы Хр 4- Fp. Как было показано в § 1.8, вычитание какого-либо числа эквивалентно сложению с его дополнением до 2", поэтому вместо вычитания числа 3 можно прибавить число 2* - 3 = 13 = = (1, 1, О, 1).

Таким образом, если перенос возникает, то к остатку суммы следует прибавить число 3, а если он отсутствует, то к сумме следует прибавить число 13. На рис. 1.21 показана схема одноразрядного сумматора для чисел, представленных в коде с избытком 3, выполненная в соответствии с установленными правилами. На вход левого двоичного сумматора подаются коды разрядов чисел с избытком 3 {Хр} = = [%,4, Хр,з, Хр,2, Xp,i), [Yp] = (ур,4, ур,з, р,2, Vp.i) и перенос из предыдущего десятичного разряда Zp. Данный сумматор вычисляет сумму [Хр] -Ь {Fp}. Если перенос в следующий десятичный разряд 2р+1 = О, то на правый сумматор подается число (1, 1,0, 1) = 13, а если Zpi = 1, то подается число (О, О, 1,1) = 3. На выходе этого сумматора получается значение суммы {Sp} = = (Sp,4. Sp,3. Sp,2. Sp,i) разрядов Хр и Fp, представленной в коде с избытком 3, с учетом переноса.

Итак, одноразрядный сумматор для чисел, представленных в коде с избытком 3, описывается соотношениями:

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

/ О, если {Хр} + [Yp] + гр< 16, если {Хр) + \Yp] +zp > 16.

f {р} + \Ур] + гр + 13, если Zp = О, {р} + \Ур\ + Zp + 3, если Zpi = 1.

где Zpi - перенос в следующий десятичный разряд; [Sp] - значение р-то разряда суммы чисел X и F; Zp = О или 1 - перенос из предыдущего десятичного разряда (перенос из предыдущей тетрады).

Прибавление чисел 3 и 13 называется коррекцией суммы и выполняется правым сумматором (рис. 1.21). Следует иметь в виду*



что возникающий при коррекции перенос теряется (не передается в следующую тетраду). С помощью последовательного соединения п одноразрядных сумматоров- (рис. 1.21) можно получить п-разрядный сумматор. Для перевода кода с избытком 3 в код 8-4-2-1 следует из кода с избытком 3 произвести поразрядное вьлитание числа 3, что эквивалентно прибавлению числа-13. Рассмотрим пример, поясняющий работу сумматора для чисел, представленных в коде с избытком 3.

Пусть требуется сложить два числа X = 326 и Y = 475 (S = X + + Y = 801). Все операции по преобразованию числа описываются

схемой:

ООП. 0010. оно ~ Х= 326 (код8-4-2-1),

ООН. 0011. ООН - внесение избытка 3,

ОНО. 0101. 1001 ~ [Х],

+ 0100. 0111. 0101 ~ F= 475 код(8-4-2-1),

ООН. ООН. ООН - внесение избытка 3,

0111. 1010. 1000 ~ {¥},

+ ОНО. 0101. 1001 ~ {X},

О 1 1

1110.

0000.

0001

~ {X} + {¥},

1101.

ООН.

- коррекция.

1011.

ООН.

0100

- {S}={X+Y},

1101.

1101.

1101

- перевод в код 8-4-2-1,

1000.

0000.

0001

~ {S} = 801 (код 8-4-2-1)

(над точками в строке \Х] + [Y] указаны переносы в следующую тет-раду).

Рассмотрим теперь вычитание «-разрядных десятичных чисел X и Y с использованием кода с избытком 3. Так как

S = X -F = X- 10«-f (10« -Г)=Х- 10«-f

где W = 10" - Y, то вычитание из X числа Y эквивалентно сложению X с дополнением Y до 10" с коррекцией результата на 10" (следует вычесть 10").

Введем в рассмотрение прямой и дополнительный коды с избытком 3 для десятичных чисел X любого знака. Прямой код с избытком 3 определяется соотношением

(О, \Х}), если X >0,

"° (1, [Х]), если X< О,

где X = \Х\. Дополнительный (n-f 1)-й разряд, равный О или 1, определяет знак числа. Дополнительный код с избытком 3 определяется соотношением

(О, \Х]), если X >0, (1, {W}), если Х<0,



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