b> 11,110110; 00,110010
1 00,101000 m з = 0,101; з = 0,101000. Результат нормалізований.
2.2 денормалізації чисел. Види денормалізації і методи усунення
Залежно від абсолютних величин мантисс доданків результат може вийти нормалізованим, або денормалізованним (вліво - переповнення, або вправо). Позитивні нормалізовані числа мають 1 в старшому розряді мантиси, а негативні числа, записані в інверсному коді. мають 0 в цьому розряді. Розбіжність цифр у знакових розрядах свідчить про денормалізації вліво (переповнення), а збіг цифр знакової і старшого значущого розряду мантиси - про порушення нормалізації вправо (права денормализация).
Правила усунення денормалізації.
При денормалізації вліво мантиса зсувається на один розряд вправо, а порядок збільшується на 1. p> При денормалізації вправо мантиса зсувається вліво до появи в старшому розряді 1, при знаку 0, або 0 при знаку 1, а з порядку віднімається кількість 1, яка дорівнює кількості зрушень мантиси. p> Порядок перевірки денормалізації.
Спочатку виконується перевірка, чи не порушена нормалізація вліво і, якщо порушена, то усувається. Якщо нормалізація вліво не порушена, то перевіряється наявність правої денормалізації, і, якщо вона є, то усувається. Ліва денормализация можлива тільки на 1 розряд, а права - на n (кількість розрядів, на яке може бути порушена нормалізація вправо, обмежене тільки довжиною розрядної сітки ЕОМ). Після виконання граничного числа зрушень мантиссу результату представляють машинним нулем. Мантиссу результату представляють також машинним нулем, якщо в процесі її зсуву порядок числа виявиться менше допустимого, тобто абсолютна величина результату буде менше, ніж мінімально можливе машинне число.
При додаванні може відбутися істинне переповнення розрядної сітки числа, тобто переповнення розрядної сітки порядку. У цьому випадку мінімум одна з складових повинно мати максимальний порядок, а мантиса результату повинна вийти денормалізованной вліво. При це в ЕОМ формується ознака переповнення порядку.
Приклад 1.
[А] пр = 0101 1,10101;
[B] пр = 0011 0,11001; Знайти С = А + В
порядок мантиса
[B '] пр = 0101 0,0011001;
[a] д = 11,0101100
[b] д = 00,0011001
[c] д = 11,1000101
Так як мантиса результату денормалізована вправо на 1 розряд, то її необхідно зрушити на 1 розряд вліво і при цьому відняти з порядку 1. br/>
[С] д = 0 100 11,000101; [С] пр = 0 100 11,111011;
Приклад 2.
[А] пр = 0101 1,10101;
[B] пр = 0 100 1,11001; Знайти С = А + В
порядок мантиса
[B '] пр = 0101 1,011001;
[a] д = 11,010110
[b] д = 11,100111
[с] д = 10,111101
Так як мантиса результату денормалізована вліво, то її необхідно зрушити на 1 розряд вправо і при цьому порядок збільшити на 1. br/>
[С] д = 0110 11,0111101; [С] пр = 0 110 11,1000011. br/>
3.Округленіе чисел в ЕОМ
Вибір системи числення і довжина розрядної сітки ЕОМ, а також форми подання числа в машині залежать в значною мірою від необхідної точності обчислень. Точність обчислень визначається також похибкою виконання арифметичних операцій при використанні в ЕОМ чисел, представлених у формі з фіксованою і плаваючою коми. Можна вважати, що в машині з фіксованою комою операції додавання і віднімання, за умови відсутності переповнення, виконується точно.
Джерелами похибок при додаванні в машині з плаваючою комою є зрушення вправо мантиси одного з вихідних чисел при вирівнюванні порядків, зрушення вправо мантиси при нормалізації результату, а також штучна встановлення нуля в якості результату при негативному переповненні порядків. Тому при нормальній формі подання чисел сама операція алгебраїчного додавання є джерелом похибок.
Таким чином, причинами похибок обчислень в ЕОМ можуть бути:
1) неточне завдання вихідних даних, що беруть участь у виконанні операції (або через обмеження розрядної сітки машини, або через похибки перекладу інформації з однієї системи числення в іншу);
2) використання наближених методів обчислень, що саме по собі дає методичну похибку (Наприклад, використання методу прямокутників, трапецій при інтегруванні);
3) округлення результатів елементарних операцій, що в свою чергу може призвести до появи накопичених похибок. br/>
3.1 Округлення чисел в прямому коді
В
Якщо припустити, що вихідна інформація не містить ніяких помилок і все обчислювальні процеси виконуються абсолютно точно, то завжди існує третій тип помилок - помилки округлення, які виникают...