Файл: Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.07.2024

Просмотров: 92

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Если разность порядков отрицательна, то в каждом цикле вы­ полняется сдвиг на один разряд вправо мантиссы первого слагае­ мого, а к разности порядков прибавляется единица до тех пор, пока разность не будет равна нулю. Затем выполняется суммирование мантисс. Результату присваивается порядок второго слагаемого.

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

При алгебраическом суммировании мантисс в одном из модифи­

цированных кодов возможны три случая.

 

 

 

 

1.

Сложение выполняется без переполнения разрядной сетки и

нарушения нормализации.

В этом случае результат переводится из

модифицированного обратного или дополнительного кода в прямой.

Порядком результата будет общий порядок обоих слагаемых.

 

Пример 15.

 

 

 

 

 

 

 

 

 

Знак

Мантисса

Знак

Порядок

 

 

 

 

числа

порядка

 

 

Первое слагаемое

00

100001100101

00

110

= 33 —

(I)

 

 

 

 

 

 

 

64

Второе слагаемое

00

101100010000

00

011

=

5 ”

(II)

 

 

 

 

 

 

 

 

 

32

 

S

 

 

 

 

 

= 39 —

 

 

 

 

 

 

 

 

64

П е р в ы й

ш а г .

Вычитание порядков: Ар = ПО—011 =

011.

В т о р о й

ш а г .

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

Л р > 0,

поэтому

 

 

 

нормализованная мантисса второго слагае­

 

 

 

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

 

 

 

(II)

00,000101100010.

 

 

 

61


Т р е т и й ш а г . Перевод обеих мантисс в модифицированный дополнительный код и сложение мантисс:

 

 

(I)

, 00,100001100101

 

 

(II)

+ 00,000101100010

 

 

 

00,100111000111

Ч е т в е р т ы й

ш а г .

Перевод результата в прямой код и

 

 

 

присвоение результату порядка пер­

 

 

 

вого слагаемого:

 

 

S == 00.100111000111.00.110.

Проверка

Z = 0,100111000111-2т1,0 =

 

 

= 100111,000111=39— .

 

 

 

64

2.

Сложение выполняется без переполнения разрядной сетки,

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

Пример 16.

 

 

 

 

 

 

Первое слагаемое (I)

00.10000001011.00.100 =

8 —

 

 

 

 

 

 

128

Второе слагаемое

(II)

11.10001111111.00.111=—71 —

 

 

 

 

 

 

16

 

2

 

 

 

= —63 —

 

 

 

 

 

 

128

П е р в ы й

ша г .

Вычитание

порядков:

Ар =

100— 111 =

= — 011.

 

 

 

 

 

 

В т о р о й

ш а г .

Выравнивание

порядков:

Д р < 0 , поэтому

 

 

нормализованная мантисса первого слагае­

 

 

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

вправо

 

(II)

 

00.00010000001011.

 

 

Т р е т и й ш а г . Перевод обеих мантисс в модифицирован­ ный дополнительный код и сложение ман­ тисс:

(I),00,00010000001011

(II)+ 11,01110000001000 11,10000000010011.

Че т в е р т ы й ш а г . Перевод результата в прямой код

11,01111111101101.

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

11, 1111111101101.

62


Порядок второго слагаемого становится 111—001 = ПО.

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

2 = 11, 1111111101101.00,110.

Проверка: S = —0,1111111101101 ■2+110 =

= —111111,1101101 = —63 — .

128

3. При сложении происходит переполнение разрядной сетки, происходит нарушение нормализации влево.

Пример 17.

Первое слагаемое (I) 11,10101100001.00,110 = — 43 —

 

 

 

 

32

Второе слагаемое

(II) 11,11111110111.00,111= — 127 —

 

 

 

 

16

П е р в ы й

ш а г .

Вычитание

порядков:

Ар = ПО— 111 =

= — 001.

 

 

 

 

В т о р о й

ш а г .

Выравнивание

порядков:

Д р < 0 , поэтому

 

 

мантиссу первого слагаемого сдвигаем впра­

 

 

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

 

(II)11,010101100001.

Т р е т и й ш а г . Перевод обеих мантисс в модифицирован­ ный дополнительный код и сложение ман­ тисс:

(I) , 11,101010011111 (II) + 11,000000010010

10, 101010110001.

Ч е т в е р т ы й ш а г . Исправление

денормализации

влево:

 

 

осуществляется

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

 

 

сдвиг мантиссы результата вправо на

 

 

один разряд с одновременным увели­

 

 

чением на единицу порядка второго

 

 

слагаемого:

 

 

 

 

 

 

11,0101010110001.

 

 

 

Порядок второго

слагаемого будет

равен

 

111 + 001

= 1000.

П я т ы й

ш а г .

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

 

 

11, 1010101001111.

 

 

 

Ш е с т о й

ш а г .

Присвоение результату

порядка

второго

слагаемого:

 

 

 

 

 

 

 

2 =

11, 1010101001111.00, 1000.

 

 

 

63


Проверка.

2 = —0,1010101001111.2+1000 =

 

 

= —10101010,01111 = — 170— .

 

 

32

§ 7.

УМНОЖЕНИЕ ЧИСЕЛ В ЦВМ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ

Умножение чисел в нормальной форме происходит по следую­

щему

алгоритму:

знака произведения путем сложения знаков

а)

определение

сомножителей согласно таблице 3-1;

б)

определение

порядка произведения путем алгебраического

сложения порядков сомножителей в одном из модифицированных кодов;

в) перемножение мантисс сомножителей, дающее мантиссу про­ изведения так же, как и для чисел с фиксированной запятой.

Произведение мантисс двух нормализованных чисел, каждая

из которых не меньше 00,1 . . . , может оказаться

меньше 00,1,

то есть происходит нарушение нормализации вправо,

но не более,

чем на один разряд. Для исправления денормализации мантиссу произведения сдвигают влево на один разряд с одновременным уве­ личением на единицу порядка произведения.

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

Знак

Мантисса

Знак

Порядок

числа

 

порядка

 

Множимое

Множитель

Произведение

П е р в ы й ш а г .

11

11011

11 0001 = —27-2“ '

11

11001

00 1 1 1 1 ^ —25-2+

= + 6 7 5 - 2 '4

Складывая порядки сомножителей с уче­ том знаков, получим порядок произведе­ ния:

 

, 11,1111

ДК

порядка множимого

 

"'00,1111

ПК

порядка множителя

 

00,1110 ПК порядка произведения.

В т о р о й

ш а г .

Складывая

коды знаков сомножителей со­

 

 

гласно таблице 3-1, получим код знака про­

 

 

изведения:

 

 

 

 

11 + 11= 00.

Т р е т и й

ша г .

Производим

умножение мантисс:

 

 

00,11011

ПК мантиссы множимого

 

 

00,11001

Множитель

64


I такт , 00,00000

«1» — цифра множителя

+00,11011 ПК множимого

00,11011 1 частичное произведение (ЧП)

00,011011 сдвиг 1ЧП на 1 разряд вправо

IIтакт 00,011011 «0»

00,0011011 сдвиг 2ЧП на 1 разряд вправо

III такт

 

00,0011011

«0»

 

 

00,00011011

сдвиг ЗЧП на 1 разряд вправо

IV такт

,

00,00011011

«1»

 

+

00,11011000

ПК множимого

 

 

00,11110011

4ЧП

 

 

00,011110011

сдвиг 4ЧП на 1 разряд вправо

V такт

,00,011110011

«1»

 

+00,110110000

ПК множимого

 

 

01,010100011

5ЧП

00,1010100011 сдвиг 5ЧП на 1 разряд вправо

Конец циклического

процесса

00,1010100011

мантисса

произведения.

Ч е т в е р т ы й ш а г .

Мантиссе

произведения приписываем

 

суммарный порядок сомножителей и

 

знак числа:

00,1010100011.00.1110.

Проверка. 00.1010100011.00.1110 = 00,1010100011 • 2+1110 =

= 675-2_10.2 +14 = 675-2+4-

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

 

Знак

Мантисса

 

Порядок

 

 

числа

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Множимое

00

110111011

00

1000

=

4 2 2 1 2

Множитель

00

110110010

11

0101

=

+ —

 

 

 

 

 

 

8192

Произведение

 

 

 

 

=

+ 5 14211 .

 

 

 

 

 

 

16 384

Заказ № 2437

65