Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.04.2024
Просмотров: 202
Скачиваний: 0
дится к арифметическому сложению. В результате уп рощаются арифметические устройства машин.
Для представления двоичных чисел в машине при меняют прямой, обратный и дополнительный коды. Во всех этих кодах предусматривается дополнительный раз
ряд |
для представления |
знака числа, причем |
знак |
«+» |
кодируется цифрой 0, а знак «—» — цифрой |
1. |
|
Положительные числа |
при прямом, обратном |
и до |
полнительном кодах имеют один и тот же вид, а отрица тельные — различный.
Прямой код (G)np двоичного числа G= |
+ 0, уиУ2,—\'п |
||
(уі= 1 или 0) определяется условиями: |
|
|
|
G при G ^ |
0, |
(2- 11) |
|
1—G при G < |
0. |
||
|
|||
Положительное двоичное число с запятой, фиксиро |
|||
ванной перед старшим разрядом, |
|
|
|
G+ = + 0 ,Y 1Ya"-Y„ |
|
(2-12) |
|
в прямом коде представляется в виде |
|
||
(G+)nP = 0, YiY2* |
|
(2-13) |
|
Аналогично отрицательное двоичное число |
|||
G = — 0, ѴаѴг-'-Ѵ» |
|
(2-12а) |
|
в прямом коде представляется в виде |
|
|
|
(G~)nP = 1, 7і Ѵг"' ’Уп- |
(2-U) |
Способы представления чисел (2-13) и (2-14) назы ваются прямым кодом соответственно положительных и отрицательных двоичных чисел.
Сложение в прямом коде чисел, имеющих одинако вые знаки, выполняется достаточно просто. Мантиссы складываются и сумме присваивается код знака слага емых. Значительно более сложной является операция алгебраического сложения в прямом коде чисел с раз личными знаками. В этом случае приходится определять большое по модулю число, производить вычитание ман тисс и присваивать разности знак большего (по модулю) числа. Таким образом, если положительные и отрица тельные числа представлены в прямом коде, операции над кодами знаков и мантиссами выполняются раз дельно.
69
Операция вычитания (алгебраического сложения) сводится к операции простого арифметического сложе ния при помощи обратного и дополнительного кодов, ис пользуемых для представления отрицательных чисел в машине. При этом операция сложения распространяется и на разряды знаков, рассматриваемых как разряды це лой части числа.
Чтобы представить двоичное отрицательное число (2-12, а) в обратном коде, нужно поставить в знаковый разряд единицу, а во всех других разрядах заменить единицы нулями, а нули — единицами:
|
(G~'o6P = 1, <4 <Ѵ • -ап, |
(2-15) |
|
где 0 , - |
1 при \'і = 0 И СГг — О при Уг— 1. |
|
|
При |
записи отрицательного |
числа в дополнительном |
|
коде ставят единицу в разряд |
знака, а цифровую часть |
числа заменяют дополнением модуля числа до целой единицы. Отрицательное число G ~ = —0, уі у2, -.-,Уп в до полнительном коде имеет вид:
(0~)доп = 1> Н е2* • ,6л> |
(2-16) |
где |
|
О, в1еа--.е п = 1 — 0, YxѴа— |
(2-17) |
Установим связь между самим отрицательным чис лом G~ и числами (G~)06p и (G- )ÄOn, представляющи ми его обратный и дополнительный коды.
Вычитая (2-12а) из (2-15), имеем:
\G )обр G = 1, Ol сг2’ ' ’°п |
( 6, ѴхУг'' *Yn)= |
= 1,11 - --1 = 2 — 2~п,
так как cri+Y*== 1- Следовательно,
(G- )O6P — G- + 2— 2~”. |
(2-18) |
Вычитая (2-12а) из (2-16), имеем:
(С~)доп — СГ = 1, ех е2• • • ея — (— 0, Yi Ys• • ■Yn)-
Учитывая (2-17), получаем:
(С")дап = СГ + 2. |
(2-19) |
70
Из (2-18) и (2-19) следует: |
|
|
(0~)доп = |
(С- )обр + 2 -"( |
(2-20) |
где п — число разрядов в |
числе. Таким образом, допол |
нительный код может быть получен из обратного путем добавления к нему единицы младшего разряда.
Рассмотрим представление нуля. В процессе вычис лений могут возникнуть «положительный» и «отрица
тельный» нули: |
|
|
|
|
+ 0,00---0; |
|
|
|
— о,оо...о. |
|
|
Представление |
«положительного» |
нуля одинаково |
|
для прямого, обратного и дополнительного кодов: |
|||
|
(+ 0)пр = 0,00...0. |
|
|
Отрицательный нуль изображается: |
|||
в прямом коде |
|
|
|
|
( - 0 ) пр= |
1,00---0; |
|
в обратном коде |
|
|
|
(— 0) )бр = |
1,1 1 . . . 1; |
||
в дополнительном коде |
|
|
|
(-0)до„ = |
|
+ 2 “ " = |
0,00... 0, |
так как перенос из разряда знака теряется.
Используя обратный или дополнительный код, мож но операции вычитания и сложения чисел различных знаков свести к арифметическому сложению кодов чисел.
Рассмотрим использование обратного кода при ал гебраическом сложении двух двоичных чисел G и Q, ког да одно из них или оба числа отрицательны. Для этого случая может быть сформулировано следующее прави ло (предполагаем, что модуль алгебраической суммы меньше единицы).
При алгебраическом сложении двух двоичных чисел с использованием обратного кода положительные слага
емые представляются |
в прямом |
коде, а отрицатель |
|
ные — в обратном и производится |
арифметическое |
сум |
|
мирование этих кодов, |
включая разряды знаков, |
кото |
рые при этом рассматриваются как разряды целых единиц. При возникновении переноса из разряда знака единица переноса прибавляется к младшему разряду
71
суммы кодов'. В результате получается алгебраическая сумма в прямом коде, если эта сумма положительна, и в обратном коде, если она отрицательна.
Это правило легко проверить. Пусть имеем двоичные
«-разрядные числа G~<i0 и |
0. Их алгебраическая |
|
сумма — 1<G~-|-Q~<;0. В соответствии |
с (2-8) можно |
|
написать: |
|
|
(<Г)обр + (<Г)обр = ( Г + 2 - |
2-" + Q - |
+ 2 - 2 ~ п = |
= 12] + (2 - 2~п) + (СГ + О”) - |
2~л. |
Двойка, стоящая в квадратных скобках, соответству ет переносу из знакового разряда. В этом случае соглас
но сформулированному правилу единица |
переноса до |
||||
бавляется к младшему разряду суммы. |
|
|
|||
В результате получаем: |
|
|
|
|
|
(G іобр + IQ Jo6p = (G |
+ Q |
) + (2 — 2 |
")— 2 +2 |
||
или |
|
|
|
|
|
(б- )обр + (Q~)O6P = (б’- + |
Q-) + |
2 - |
2~n, |
||
откуда согласно (2-18) |
|
|
|
|
|
(G )обр “г (Q |
)обр= |
(G |
-f Q )обр* |
(2-21) |
Итак, сложение с циклическим переносом обратных кодов двух отрицательных чисел дает обратный код их алгебраической суммы.
Рассмотрим алгебраическую сумму двух чисел: поло жительного G+ и отрицательного Q~. Тогда
(G+)np + (<Г)обр = G+ + Q - |
+ 2 - |
2 ~ п . (2-22) |
|
Если (G++Q - ) > 0 , то 2 + (G+-J-Q- ) > 2 |
и |
возникает |
|
перенос из разряда знака. Так как |
перенос |
цикличес |
кий, то двойку нужно в рассматриваемом выражении заменить на 2~п.
В результате имеем: |
|
(G+)пр + ( ( T W = (G+ + Q-) пр |
(2-23) |
(при G+ -f Q~ > О)- |
|
1 Такой перекос называется круговым или циклическим.
72