Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКУМ ПО ОМПТ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
662.53 Кб
Скачать

1.6. Выполнение арифметических операций над числами с плавающей запятой

При вычислениях на ЭВМ действительные числа обычно представляются в форме чисел с плавающей запятой: с мантиссой g и порядком p, т. е. как g2p. В микропроцессорных системах с побайтовой отработкой мантисса обычно занимает 24 или 16 разрядов, а порядок – 8 разрядов. Представление чисел в форме с плавающей запятой и порядком обеспечивает возможность использовать больший динамический диапазон по сравнению с числами в форме с фиксированной запятой.

Умножение чисел с плавающей запятой выполняется по следующей формуле:

2p1g12p2g2 = g1 g22p1+p2,

где g1, g2мантиссы сомножителей; p1, p2 – порядки сомножителей. Очевидно, что для выполнения операции умножения необходимо просто умножить мантиссы и сложить порядки.

Деление производится в соответствии с формулой

2p1g1 / (2p2g2) = g1/g2 2p1p2.

При сложении и вычитании порядки и мантиссы взаимосвязаны. Сложение (вычитание) в предположении, что 2p1g1 > 2p2g2 выполняется по формуле:

2p1g1 ± 2p2g2 = (g1 ± g2/2p1 – p2) 2p1.

Иногда возникает необходимость в выполнении дополнительных операций нормализации результатов арифметических операций. Например, при сложении результирующая мантисса может быть слишком большой, если мантиссы слагаемых имели один и тот знак, и их суммирование привело к переполнению; или же в результате может получиться число, близкое к нулю, если мантиссы слагаемых имели разные знаки. В этих случаях результирующую мантиссу необходимо сдвигать вправо (когда она слишком велика) и влево (когда она слишком мала) до тех пор, пока самая левая единица не попадет в старший разряд. Так как сдвиг мантиссы осуществляется умножением на степень 2, то для того, чтобы сохранить то же самое значение суммы, необходимо одновременно со сдвигом корректировать порядок суммы, прибавляя или вычитая единицу при каждом сдвиге вправо или влево соответственно.

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

Рис.1. Алгоритм сложения чисел в форме с плавающей запятой.

Алгоритм сложения показан на рис. 1. Вычитание производится по этому же алгоритму, но вместо сложения мантисс выполняется их вычитание. Для программной реализации алгоритмов сложения и вычитания необходимо иметь следующие подпрограммы:

относительного нормирования двух операндов (выравнивания порядков);

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

вычитания мантисс двух операндов.

Р ис. 2. Алгоритм умножения чисел в форме с плавающей запятой.

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

Д ля реализации алгоритма программы деления чисел с плавающей запятой (рис. 3) должна быть введена еще одна подпрограмма деления мантисс двух чисел.

Рис. 3. Алгоритм деления чисел в форме с плавающей запятой.