Пусть 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 заменяется нулём – это машинный нуль.