Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

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



 

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

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

g1 2 p1 g2 2 p2 = g1 g2 2 p1+ p2,

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

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

 

g12 p1 / (g22 p2) = g1/g2 2 p1 – p2.

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

 

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

 

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

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

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

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

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

 

 

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

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

 

 

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

 

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

 

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