ВУЗ:
Составители:
73
4.5.5. Алгоритм умножения чисел в формате
с плавающей точкой
Так же как и при сложении, операция умножения операндов,
представленных в формате с плавающей точкой, выполняется раз-
дельно над мантиссами и порядками. Операция Z=X*Y, где
X=М
х
*2
Px
, Y=M
y
*2
Py
, выполняется как
M
z
=M
x
*M
y
; P
z
=P
x
+P
y
.
Алгоритм состоит из следующих шагов:
1. Операнды извлекаются из ОП с разделением на мантиссу (вос-
станавливается скрытый бит) и порядок.
2. Содержимое регистров порядков складывается с вычитанием
константы 127
(10)
(смещение). Проверяется превышение максимально
и минимально допустимого порядков, и если такой случай есть, то
устанавливается соответствующий флаг.
3. Содержимое регистра мантиссы Х умножается на содержимое
регистра мантиссы Y в прямом коде по алгоритму умножения дроб-
ных чисел в формате с ФТ (выравнивание мантисс не нужно).
4. Проверяется нарушение нормализации вправо мантиссы про-
изведения. Если нарушение есть, производится нормализация влево.
При этом проверяется, чтобы порядок произведения Р
z
не превысил
максимально допустимый (если превысил, то фиксируется перепол-
нение).
5. Полученный результат записывается в ОП в формате КВ
(со скрытием бита мантиссы и объединением содержимого регистра
порядка и регистра мантиссы).
Рассмотрим пример выполнения такого алгоритма. Выполним
операцию умножения операндов Z=X*Y.
X=24
(8)
, Y= – 65
(8).
Представим эти операнды в формате КВ, в том
виде, в котором они хранятся в ОП, т.е. со скрытым битом.
X=24
(8)
=10100
(2)
=0,10100
(2)
*2
100
. Тогда с учетом скрытия старшего
бита получаем:
X=
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
байт
байт
байт
байт
4.5.5. Алгоритм умножения чисел в формате
с плавающей точкой
Так же как и при сложении, операция умножения операндов,
представленных в формате с плавающей точкой, выполняется раз-
дельно над мантиссами и порядками. Операция Z=X*Y, где
X=Мх*2Px, Y=My*2Py, выполняется как
Mz=Mx*My; Pz=Px+Py.
Алгоритм состоит из следующих шагов:
1. Операнды извлекаются из ОП с разделением на мантиссу (вос-
станавливается скрытый бит) и порядок.
2. Содержимое регистров порядков складывается с вычитанием
константы 127(10) (смещение). Проверяется превышение максимально
и минимально допустимого порядков, и если такой случай есть, то
устанавливается соответствующий флаг.
3. Содержимое регистра мантиссы Х умножается на содержимое
регистра мантиссы Y в прямом коде по алгоритму умножения дроб-
ных чисел в формате с ФТ (выравнивание мантисс не нужно).
4. Проверяется нарушение нормализации вправо мантиссы про-
изведения. Если нарушение есть, производится нормализация влево.
При этом проверяется, чтобы порядок произведения Рz не превысил
максимально допустимый (если превысил, то фиксируется перепол-
нение).
5. Полученный результат записывается в ОП в формате КВ
(со скрытием бита мантиссы и объединением содержимого регистра
порядка и регистра мантиссы).
Рассмотрим пример выполнения такого алгоритма. Выполним
операцию умножения операндов Z=X*Y.
X=24(8), Y= – 65(8). Представим эти операнды в формате КВ, в том
виде, в котором они хранятся в ОП, т.е. со скрытым битом.
X=24(8)=10100(2)=0,10100(2)*2100 . Тогда с учетом скрытия старшего
бита получаем:
X= 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
байт байт байт байт
73
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »
