Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.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