Файл: Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие.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