Выполнение операций над числами, представленными с плавающей точкой (говорят- в плавающей арифметике).

Пусть X = Mx×2Px ,а Y = My×2Py

a)Сложение (вычитание) чисел:

Z = X ± Y = Mx×2Px ± My×2Py ={1шаг–выравнивание порядков к большему; пусть Px >Py}

= 2Px×(Mx ± My×2Py–Px) = {2 шаг–сдвиг мантиссы My на |Py–Px| разрядов}

= 2Px×mz = {3шаг–сложение(вычитание) мантисс, получается мантисса mz}.

= Mz ×EPz

Возможны случаи:

· 1 £ |mz| < 2Þ операция закончена, Mz = mz ; Pz = Px ;

· 2 £ |mz| Þ выполняется нормализация результата сдвигом мантиссы вправо на 1 разряд с коррекцией порядка (+1);

· |mz| <1 Þ выполняется нормализация результата сдвигом мантиссы влево на t разрядов с коррекцией порядка (–t).

з pх 1.ххххх

– з py 1.xxyyy

з pх 0.00zzz При вычитании близких чисел происходит

з pz 1.zz??? потеря точности

б)Умножение :

Z = X × Y = Mx×2Px × My×2Py = Mx×My×2Px+Py == Mz ×2Pz , где Mz = Mx×My ; Pz = Px+Py; т.е. при умножении чисел их мантиссы перемножаются, а порядки складываются. При умножении двух мантисс может получиться результат такой, что потребуется сдвиг мантиссы вправо, но не более, чем на один разряд, тогда нужна коррекция порядка (+1).

в)Деление :

т.е. при делении чисел их мантиссы делятся, а порядки вычитаются. При делении двух мантисс может потребоваться для полученной мантиссы сдвиг влево, но не более, чем на один разряд с коррекцией порядка (–1).

Особые ситуации плавающей арифметики.

1. Переполнение порядка при выполнении операций плавающей арифметики;

2. некорректность деления в плавающей арифметике: деление на число с нулевой мантиссой;

3. потеря значимости: Pz ¹0, а Mz = 0;

4. исчезновение порядка: Pz < Pmin , а Mz ¹ 0.

Две последние ситуации не являются аварийными, они обычно приводят к тому, что результат Z заменяется нулём – это машинный нуль.