Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Караваев, Н. И. Электронные цифровые вычислительные машины и программирование учеб. пособие

.pdf
Скачиваний:
5
Добавлен:
20.10.2023
Размер:
8.52 Mб
Скачать

 

- 30

-

 

цамк, а единицы - нулями

и к младшему цифровому разряду

прибавить единицу.

 

 

 

Например: X * -0,101101;

 

1,010010

 

 

+

1

[X]

доп

-

1,010011 .

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

Кроме обычного дополнительного кода числа X, в ЭЦВМ используется модифицированный дополнительный код, который обозначается [х] доп и образуется по формуле

[х] доп J

Х > е с

л и х

> ° ;

/ 1 . 6 /

 

[100 +

X,

если Х< 0 .

 

Из формулы / 1 . 6 /

видно,

что

модифицированный

дополни­

тельный код отличается от обычного дополнительного кода

только наличием двух знаковых разрядов.

 

 

 

Примеры:

 

 

 

1

/

Х = +

0,101101;

2/ X « -

0,101101;

X

 

жш=

0,101101;

X доп

-

1,010011;

X

 

доп-

00,101101.

X доп

-

11,010011.

 

 

Обратный

код числа X обозначается символом [х]

обр

и

образуется

по формуле:

 

 

 

 

 

 

 

 

 

 

[ X ]

обр

[10 -

е с л и т

X

2*

0;

X <

/ 1 . 7 /

 

 

 

 

 

 

10 т +

X,

если

0.

 

где

ГПколичество разрядов

дробной части

числа.

 

 

 

Например:

 

 

 

 

 

 

 

 

 

 

 

Х - + 0 , 1 1 0 1 1 ;

 

[ X ]

обр =. 0,11011 ;

 

 

 

X = - 0,11011;

[ X ]

 

обр- 10-10"1 0 1

+(-0,11011)

»

=

10 - 0,00001 - 0,11011

-

1,00100.

 

 

 

 

 

 

Из формулы / 1 . 7 /

видно,

что

изображение положительно­

го

 

числа в обратном

коде

совпадает

с изображением его в

- 31 -

прямом коде. Правило образования обратного кода отрицатель­ ного числа может быть сформулировано следующим обрезом: чтобы представить отрицательное число в обратном коде, необ­ ходимо в знаковом разряде поставить единицу, а в цифровых разрядах нули заменить единицами, а единицы - нулями.

Например:

Х - - 0 , 1 0 1 1 0 1 ;

 

U J

обр- 1,010010.

Нуль в обратном коде

имеет два изображения:

[ + 0 ]

обр

= 0,000

[ - 0 ]

обр

* 1,1111

для образования

прямого

кода отрицательного числа из

его обратного кода необходимо в цифровых разрядах нули за­ менить единицами, а единицы - нулями.

Кроме обычного обратного кода числа X, в ЭЦВМ исполь­ зуется модифицированный обратный код, который обозначает­

ся

[х]

обр

 

и образуется

по формуле:

 

 

 

[х]

Р

 

X,

если 1 >

0;

 

/ 1 . 8 /

 

100-10~m + X,

если X <

0 .

 

 

 

 

 

 

 

 

Из формулы / 1 . 8 /

видно,

что

модифицированный обрат­

ный

код отличается

от

обычного

обратного кода

только на­

личием двух знаковых разрядов.

 

 

 

 

 

 

Примеры:

 

 

 

 

 

 

 

 

 

 

 

1 /

Х « +

 

0,101101;

 

 

2/

Х « -

0,101101;

 

 

[хЪбр- 0,101101;

 

 

 

[Х]обр

=

1,01010;

 

 

[ХЫ5р= 00,101101.

 

 

 

М о б р »11,01010.

 

Сложение

и вычитание в машинах с фиксированной

 

 

 

 

 

 

запятой

 

 

 

 

 

Арифметическую операцию вычитания модно рассматривать

как операцию сложения двух чисел, одно

из которых отрица­

тельное. В цифровых

вычислительных

машинах ыоано

избежать

операции

вычитания,

ее:;и оба

числа,

участвующие

. операции,

представить в дополнит»'.-ьн-ам ил«: обратном коде.

 

 

Сложение чисел

в дополнительном

коде осуще

 

ля.-гея а

- 32 -

ЭЦВМ с помощью сумматора, в котором реализуется правило сложения дополнительных кодов. Дополнительные коды скла­ дываются по обычным правилам сложения, причем знаковый разряд рассматривается как обычный цифровой разряд. Это означает, что цифры в знаковом разряде складываются и, кроме того, производится перенос ив старшего цифрового разряда в знаковый разряд; единица переноса из знакового разряда теряется.

Полученная сумма будет выражена также в дополнитель­ ном коде, если абсолютная величина суммы меньше единицы.

При сложении чисел в дополнительном коде арифметичес­ кое устройство выполняет следующие операции:

-перевод чисел в дополнительный код;

-сложение дополнительных кодов чисел;

-перевод суммы из дополнительного кода в прямой. Результат суммирования в прямом коде передается в

запоминающее устройство или сохраняется в сумматоре. Примеры:

1 /

[X] пр - 0,010101 ;

[ У ] пр

= 0,001011;

 

[X] доп- 0,010101;

[ У ] доп«= 0,001011;

 

 

+

0,010101

 

 

 

 

0.001011

 

 

[X + У]доп

-

0,100000

 

 

[X + У]пр

-

0,100000 .

2/

[X] пр - 0,100010;

[у] пр-

1,111110;

 

]доп • 0,100010;

[У]доп -

1,000010;

 

 

+

0,100010

 

 

 

 

1,000010

 

 

[X + У] доп-

1,100100;

 

 

[X + У]

пр =

1,011100.

 

Сложение чисел в обратном коде осуществляется в ЭЦВМ с помощью сумматора, в котором реализуется правило сложе­ ния обратных кодов. Обратные коды складываются по обычным

- 33 -

правилам сложения, причем знаковый разряд рассматривается как обычный цифровой разряд. Из старшего цифрового разря­ да производится перенос в знаковый разряд и, кроме того, перенос из знакового разряда в младший разряд суммы /цик­ лический перенос/. Полученная сумма будет выражаться так­ же в обратном коде, если абсолютная величина суммы меньше единицы.

При сложении чисел в обратном коде арифметическое уст­ ройство выполняет следующие операции:

-перевод чисел в обратный код;

-сложение обратных кодов чисел;

-перевод суммы из обратного кода в прямой.

Результат суммирования в прямом коде передается в за­ поминающее устройство илч сохраняется в сумматоре.

Примеры:

 

 

 

 

 

1 / [X] пр

-

0,100101 ; .

[У]

пр=

1,110111;

]обр

-

0,100101,-

[У]

обр-

1,001000;

+ 0,100101 1,001000

[X + У] обр - 1,101101 ; [X + У] пр = 1,010010 .

2/

[X] пр - 0,110111;

[У] пр=

1,100111 ;

 

]обр = 0,110111;

[У]обр=

1,011000;

+0,110111

1,011000

10,001111

цикаический перенос

[X + У] обр = 0,010000; [X + У] пр = 0,010000.

3/ [X] пр - 1,000101;

[У]

пр-

1,110110;

]обр = 1,111010;

[У]

обр=

1,001001;

- 34 -

+1,111010

1,001001

11,000011

циклический перенос

[X + У] обр * 1,000100; [X + У] пр = 1,-111011 .

При сложении чисел с одинаковыми знаками в машинах с фиксированной запятой может произойти переполнение разряд­ ной сетки. Поэтому необходимо установить признаки, по ко­ торым можно было бы судить о переполнении разрядной сетки машины. Признаки переполнения разрядной сетки наиболее просто реализуются в машинах в том случае, если сложение чисел проводится в модифицированных дополнительном или об­ ратном кодах.

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

ряда в другой и, кроме того, в модифицированном дополнитель­ ном коде теряется единица переноса из старшего знакового разряда, а в модифицированном обратном годе из старшего знакового разряца осуществляется циклический перенос.

При.использовании модифицированных дополнительного или обратного кодов признаком переполнения разрядной сетки бу­ дет образование сочетания различных цифр в знаковых разря­ дах: либо 10, либо 0 1. В машинах имеется специальное уст­ ройство, которое сравнивает значения знаковых разрядов суммы и вырабатывает сигналы на останов машины в случае их несовпадения.

 

 

 

 

 

 

-

35

-

 

 

 

 

Примеры:

 

 

 

 

 

 

 

 

 

 

 

 

1 /

[X]

пр

-

0,001101;

[У]

пр- 0,101110;

 

 

]доп

=00,001101;

[У]доп

«00,101110;

 

 

 

 

 

 

 

 

•^od.ouiioi

 

 

 

 

 

 

 

 

00.1<-1110

 

 

 

 

 

[X + У]доп00,111011 ;

 

 

 

 

 

[X +

У] пр=

0,111011.

2/

[X]

пр = 0,101101;

 

[У] пр -

0,101110;

 

]доп

=00,101101;

 

[У]доп

-00,101110;

 

 

 

 

 

+

00,101101

 

 

 

 

 

 

 

 

 

 

00,101110

 

 

 

 

 

 

 

 

 

 

^,011011 .

 

 

 

 

 

признак

переполнения

разрядной

сетки

3/

[X]

пр = 1,011001;

 

[У]

пр

= 1,100101;

 

ЭДобр

-11,100110;

. [У] обр

 

-11,011010;

 

 

 

 

 

 

И 1,100110

 

 

 

 

 

 

 

 

 

 

11,011010

 

 

 

 

 

 

 

 

 

 

111,000000

 

 

 

 

 

 

 

 

 

 

I

±*1

 

 

 

 

 

 

 

 

циклический

перенос

 

 

 

 

[X +

У]

обр

-

11,000001 ;

 

 

 

 

 

[X + У]

пр

=

1,111110 .

 

 

 

 

4/

[X]

 

пр

= 1,111001;

[У]

п р -

1,100111;

 

[х]

обр

-11,000110;

[У] обр

=11,011000;

 

 

 

 

 

 

11,000110

 

 

 

 

 

 

 

 

 

 

11,011000

 

 

 

 

 

 

 

 

 

 

ДО, 0 1 1

П0~.

 

 

 

 

признак переполнения разрядной сетки

- 36 -

Сложение и вычитание чисел в машинах с плавающей запятой

Сложение и вычитание чисел в машинах с плавающей за­ пятой производится в несколько этапов с применением спе­ циальных логических операций /сравнение чисел или их

частей,

сдвиг числа вправо

или влево

относительно запятой

и д р . / .

Последовательность

проведения

этапов сложения чи­

сел в машинах с плавающей запятой обычно принимается сле­ дующая :

-сравнение порядков чисел;

-выравнивание порядков, заключающееся в том, что меньший порядок / с учетом знака/ увеличивается на величину раз­

ности порядков, а его мантисса сдвигается вправо отно­ сительно запятой на число разрядов, равное разности порядков; выравненный порядок будет порядком суммы;

-перевод мантисс чисел в модифицированный обратный или модифицированный дополнительный код;

-сложение мантисс, дающее мантиссу суммы;

-нормализация суммы при ее нарушении влево /при этом

производится сдвиг мантиссы вправо на один разряд и одновременно увеличивается порядок суммы на единицу/;

-перевод мантиссы в прямой код;

-нормализация суммы при ее нарушении вправо.

Следует обратить внимание на то, что нормализация сум­ мы влево проводится до перевода мантиссы в прямой код. Признаком нарушения нормализации влево при использовании модифицированных кодов является сочетание различных цифр в знаковых разрядах, т . е . признак нарушения нормализации влево совпадает с признаком переполнения разрядной сетки /для машин с фиксированной запятой/. Нормализация суммы при ее нарушении вправо проводится после перевода мантис­ сы суммы в прямой код.

- 37 -

Пример:

 

 

"mx ]np = 0,10110000;

[Рх]пр =

0,100;

;Шу]пр = 1,11010000;

у]пр =

0,011 .

Следует заметить, что порядки выражаются целыми чис­ лами ; запятая при записи порядков используется для отде­ ления знаковых разрядов.

а/ Сравнение порядков:

б/

 

 

Р х > Ру

Выравнивание порядков:

 

 

доп » 00,100;

 

доп » 11,101 ;

 

 

+00,100

 

 

 

11,101

 

 

Доп«

00.001

 

пр»

0,001 .

Так как порядок числа

У на

единицу меньше порядка

числа X, то мантисса числа

У сдвигается на один разряд

вправо, а для обоих чисел

принимается порядок числа X.

Этот же порядок будет и порядком суммы до проведения нор­ мализации.

Таким образом, после выравнивания порядков будет:

х1пр- 0,10110000;

[РхЗпр =

0,100;

[ГЛу]пр =1,01101000;

Ру]пр =

0,100.

в/ Перевод мантисс в модифицированный дополнительный код:

,ГПх]доп - 00,10110000; - П1у]доп - 11,10011000 .

г/ Сложение мантисс: +00,10110000

И,10011000

00,01001000

 

 

- за -

д/

Перевод мантиссы суммы в прямой код:

 

[ т х + т у ] П р=

о.оюоюоо;

е/

[ Р х Д р -

0,100.

Нормализация суммы.

 

В данном примере

имеет место нарушение нормализации

вправо. Для нормализации суммы мантисса сдвигается влево на один разряд, а порядок суммы уменьшается на единицу:

[|Т?х + ГТ]у]пр

*

0,10010000 ;

[Рх+у]пр

-

0,011 .

В заключение следует отметить, что в машинах с пла­ вающей запятой переполнение разрядной сетки будет только в том случае, если в результате проведения операции будет получен порядок, который по абсолютной величине больше наибольшего представляемого в матине порядка.

У м н о ж е н и е

При рассмотрении операций сложения и вычитания было установлено, что для их реализации в ЭЦВМ наиболее удобно использовать представление чисел в дополнительном или об­ ратном коде. При выполнении операции умножения также жела­ тельно использовать представление чисел в дополнительном или обратном коде, так как в этом случае может быть получен результат с учетом знака. Однако использование дополнитель­ ного или обратного коде при выполнении операции умножения связано с рядом трудностей. Поэтому в большинстве совре­ менных машин умножение чисел производится путем умножения абсолютных величин этих чисел, представленных в прямом ко­ де, и определения знака произведения.

Знак произведения определяется специальной схемой пу­ тем сложения знаковых разрядов сомножителей; на выходе схе­ мы получается цифра, соответствующая знаку произведения.

- 39 -

Сложение знаковых разрядов осуществляется в соответствии с таблицей:

0

+ 0 = 0 ;

0

+

1 -

1 ;

1

+

0 -

1 ;

1

+

1 = 0 .

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

При умножении чисел в машинах с плавающей запятоС опе­ рация умножения чисел слагается из умножения мантисс и алгебраического суммирования порядков. Результат операции, при необходимости, нормализуется. Для умножения мантисс может быть выбран тот же способ кодирования, что и при ум­ ножении чисел в машинах с фиксированной запятой, т.е.% про­ изведение мантисс получается путем умножения их абсолютных величин, представленных в прямом коде. Для получения ал­ гебраической суммы порядков обычно используется обратный или дополнительный код.

Умножение в двоичной системе счисления может быть вы­ полнено путем последовательных суммирований и сдвигов. Про­ цессом суммирования управляют цифры множителя: если очеред­ ная цифра множителя 1, то множимое добавляется к сумме час­ тичных произведений; если очередная цифра множителя 0, сум­ мирование не производится.

В настоящее время известно несколько способов умноже­ ния двоичных чисел, но наибольшее применение имеют два спо­ соба.

1. Умножение начинается с младших разрядов множителя /множитель сдвигается вправо/. После каждого такта сумми­ рования сумма частичных произведений сдвигается вправо.

Множимое неподвижно. Умножение может начинаться также со старших разрядов множителя. В этом случае множитель и сумма частичных произведений сдвигаются влево.

Соседние файлы в папке книги из ГПНТБ