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

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

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

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

Добавлен: 09.07.2024

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

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

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

Если же остаток z2< 0 , проставляем в частном 0, восстанавли­ ваем предыдущий частичный остаток 10* = z 2 -j- у, сдвигаем его на один разряд влево (100*) и вновь вычитаем делитель (z3100x—у) и т. д. Операции повторяются до тех пор, пока не получится частич­ ный остаток Zi ----- 0 или пока в частном не получится требуемое ко­ личество разрядов.

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

По второму способу при получении отрицательного остатка zt последний сдвигается на один разряд влево (Юг,-), после чего дели­ тель не вычитается, а прибавляется (Юг,- + у).

Пусть

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

вен zx — *—у,

если + -<0, проставляем в частное 0, сдвигаем zx

влево на

один

разряд

-

 

10Z! = 10 (х—у),

а для нахождения следующего остатка прибавим к нему делимое у

z 2 ----- 10z, + у = 10* — 10у г у ----- Ю*—у.

Видим, что z2 представляет собой делимое *, сдвинутое на один разряд влево (10*), из которого вычитается делитель у. Происходит автоматическое восстановление остатка. Если г2<Ю, проставляем в частное 0, сдвигаем z2 опять влево (10z2) и к нему вновь прибав­ ляем у. Если z2>-0, прибавляем в частное 1, сдвигаем z2 влево и вычитаем делитель и т. д.

Описанный метод деления называется методом деления без вос­ становления остатка.

Пример 13. Разделить два числа, используя метод с восстанов­ лением остатка. Арифметические действия над дробными частями чисел производить в модифицированном дополнительном коде.

Делимое

[х]“р = 00,010010011

147

512 '

 

 

Делитель

 

 

[уГ

=11,101010000 = — — .

L^Jnp

02

Знак частного согласно таблице 3-1

равен 00+11 = 11.

Производим деление модулей дробных частей делимого и делителя

 

00,010010011

1)

ПК делимого

Цифры частного

1 11,010110000

 

ДК делителя

 

+,

11,101000011

2)

Z !< 0

0,

00,10101

 

ПК делителя

 

 

00,010010011

Восстановленный остаток

57


,

00,100100110

Сдвиг остатка

влево

'

11,010110000

ДК делителя

 

,

11,111010110

3) z2<

0

0,0

+

00,10101

ПК делителя

 

 

00,100100110

Восстановление остатка

.

01,001001100

Сдвиг остатка влево

+

11,010110000

ДК делителя

 

 

00,011111100

4) z3>

0

0,01

,

00,111111000

Сдвиг

остатка

влево

4

11,010110000

ДК делителя

 

 

00,010101000

5) z4> 0

0,011

_j

00,101010000

Сдвиг остатка влево

г 11,010110000

ДК делителя

 

 

00,000000000

6) z5 =

0

0,0111

С учетом знака частное равно

 

 

X = 11,0111 =

----- —7 .

 

у

. лр

 

16

Пример 14. Разделить два числа методом деления без восстанов­ ления остатка. Арифметические действия над дробными частями числа производить в модифицированном дополнительном коде.

Делимое

 

 

М “р = 11,100000011 = — .

 

 

 

 

 

512

 

Делитель

 

 

 

 

 

 

[у\ы =11,111

= — — .

 

 

l^ Jnp

 

g

 

Знак частного согласно таблице равен

11 Д 1 1 -= 00. Произво-

дим деление модулей делимого и делителя

 

00,100000011

1)

ПК делимого

 

Частное

 

11,001000000

 

ДК делителя

 

 

11,101000011

2)

Zl< 0

 

0,

,

11,010000110

 

Сдвиг остатка zx влево

+

00,111000000

 

ПК делителя

 

 

00,001000110

3)

z2> 0

 

0,1

 

00,010001100

Сдвиг остатка z2 влево

 

11,001000000

ДК делителя

 

 

58


 

11,011001100

4) z3< 0

0,10

,

10,110011000

Сдвиг остатка

z3 влево

'г 00,111000000

ПК делителя

 

 

11,101011000

5) z4< 0

0,100

,

11,010110000

Сдвиг остатка

z4 влево

г 00,111000000

ПК делителя

 

 

 

 

 

А

 

00,001110000

6) 2-л> 0

0,1001

,

00,011100000

Сдвиг остатка гь влево

_г 11,001000000

ДК делителя

 

 

11,100100000

7) ze< 0

0,10010

,

11,001000000

Сдвиг остатка

z6 влево

1 00,111000000

ПК делителя

 

 

00,000000000

8) z7 = 0

0,100101

С учетом знака частное

равно

 

 

 

=

00,100101

37

 

 

62 ‘

 

 

Jn p

 

§ 5. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ В ЦВМ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ

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

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

В нормализованных числах мантисса N 0 удовлетворяет условию

~< \ N 0\<1.

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

Отрицательные нормализованные числа, представленные в мо­ дифицированном прямом коде, имеют сочетание 11,1. Отрицатель­ ные нормализованные числа, представленные в модифицированном дополнительном или обратном кодах, должны иметь сочетание 11,0. При выполнении арифметических действий над двумя нормализо­ ванными числами результат может быть ненормализованным чис­ лом, т. е. происходит нарушение нормализации. Невыполнение условия |iV0|< < l называется нарушением нормализации влево.

59



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

1 < |Л М < 2 ,

то признаком нарушения нормализации влево для положительных чисел является сочетание 01, для отрицательных чисел — сочета­ ние 10 в двух знаковых разрядах. Нормализация может быть вос­ становлена путем модифицированного сдвига мантиссы вместе со знаковым разрядом на один разряд вправо с одновременным при­ бавлением к порядку единицы.

Невыполнение условия

называется нарушением нормализации вправо, признаком кото­ рого является для положительных чисел сочетание 00,0; для от­ рицательных чисел, представленных в модифицированном прямом коде, сочетание П-,0; для отрицательных чисел, представленных в модифицированном обратном или дополнительном кодах—сочета­ ние 11,1 в двух знаковых разрядах числа и старшем цифровом раз­ ряде мантиссы.

Восстановление нормализации осуществляется путем повторе­ ния цикла сдвига мантиссы влево с одновременным вычитанием единицы из порядка до тех пор, пока в знаковых разрядах и стар­ шем цифровом разряде мантиссы не появятся для положительных и отрицательных чисел, представленных в модифицированном пря­ мом коде, соответственно сочетания 00,1 и 11,1; для отрицательных чисел, представленных в модифициоованном дополнительном или обратном кодах, сочетание 11,0.

§6. СЛОЖЕНИЕ И ВЫЧИТАНИЕ ЧИСЕЛ В ЦВМ

СПЛАВАЮЩЕЙ ЗАПЯТОЙ

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

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

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

60