оцінювати можливі значення результату після кожної операції, що практично нездійсненно зважаючи на дуже великого числа виконуваних операцій. Тому приймаються спеціальні заходи для виявлення переповнення розрядної сітки. Найбільш широко для цієї мети використовуються два способи. При виявленні переповнення за першим способом враховується обставина, що переповнення може з'явитися тільки за додаванні чисел з однаковими знаками. У цьому випадку про переповнення буде свідчити розбіжність знака доданків і знака суми. Недоліком цього способу є необхідність реалізації дворазового порівняння знаків чисел і їх запам'ятовування до кінця операції. Сутність другого способу полягає у використанні модифікованих прямого, зворотного та додаткового кодів. Особливістю цих кодів є наявність двох знакових розрядів, а також кодування знака числа двома однаковими цифрами. Поява в знакових розрядах модифікованого коду, оброблюваних так само як і числові розряди, різних цифр (наприклад, 01 при додаванні позитивних чисел і 10 при додаванні негативних) свідчить про переповнення розрядної сітки. Цей спосіб виявлення переповнення отримав найбільше поширення. br/>
.1.2 Множення чисел з плаваючою комою
Операцію множення чисел з плаваючою комою можна представити у вигляді:
(F1 * 2 E1 ) * (F2 * 2 E2 ) = (F1 * F2) 2 (E1 + E2) = F * 2 E (2.2)
Таким чином, для виконання множення необхідно перемножити мантиси і скласти порядки. Передбачається, що мантиси F1 і F2 були нормалізовані до початку множення. p align="justify"> Існує деякі критичні ситуації, які можуть призвести до виникнення помилки. По перше, якщо F = 0, то порядок повинен містити максимальне негативне число (1000). По друге, якщо виконати множення -1 на -1 (1.000x1.000), то результат повинен бути +1. Оскільки не можна уявити +1 в додатковому коді, виникає переповнення мантиси (fraction overflow). Для виправлення цієї ситуації, F встановлюється F = 1/2 (0.100) та порядок збільшується на 1. Це можливо, оскільки 1 * 2 E = 1/2 * 2 E +1 .
Після виконання множення результат буде не нормалізований. Наприклад,
(0,1 * 2 Е1 ) * (0,1 * 2 Е2 ) = 0,01 * 2 Е1 + Е2 = 0,1 * 2 Е1 + Е2 +1 ( 2...