Округлення прямих кодів
Відомі різні способи округлення чисел в ЕОМ. Всі вони припускають, що для округлення числа доnрозрядів необхідно обчислювати розрядів округлюваного числа, де .
Розрізняють три види округлення:
1. Округлення нанівець, коли число, тобто. правильний дріб, що округляється до найближчого до нуля машинного числа.
2. Округлення від нуля, коли число округляється до машинного числа, що лежить далі від нуля, ніж число, що округлюється.
3. Округлення за доповненням, коли округлення провадиться до найближчого машинного числа.
Розглянемо кілька способів округлення і дамо їм оцінку похибки.
Округлення до нуля виконується методом усічення, який полягає у відкиданніtнадлишкових розрядів числа. Такий метод округлення найпростіший у реалізації і вимагає додаткового часу виконання. У цьому випадку максимальна величина модуля похибки (для двійкового правильного дробу) визначається виразом
Якщо поява чисел з різними знаками рівноймовірна і всілякі двійкові комбінації додаткових розрядів числа також є рівноймовірними, математичне очікування похибки округлення для методу усічення дорівнює нулю. Якщо ж поява чисел з різними знаками не є рівноймовірною, математичне очікування похибки округлення методом усічення запишеться як
тобто. при діях з числами одного знака буде місце систематичне накопичення похибки округлення.
Округлення від нуля передбачає аналіз надлишкових розрядів на рівність нулю, при цьому надлишкова частина відкидається і, якщо частина, що відкидається, не дорівнює нулю, в молодший розряд частини, що залишилася, додається одиниця.
Основні характеристики цього округлення повністю збігаються з характеристиками методу усічення. Прицьому округлення від нуля вимагає використання додаткового часу і схемотехнічних ресурсів для аналізу надлишкових розрядів, а також для формування поширення переносів при додаванні одиниці до молодшого розряду округленого числа, тому використання методу округлення від нуля невигідно.
Округлення за доповненням є комбінацією двох попередніх методів і полягає в тому, що до молодшого розряду частини числа, що зберігається (двійкового правильного дробу) додається деяка величина aÎ, що визначається за старшою цифрою надлишкової частини числа. Якщо -й розряд числа містить одиницю, то після відкидання надлишкової частини до молодшого розряду частини числа, що зберігається, додається одиниця, тобто. . В іншому випадку до молодшого розряду частини, що зберігається, додається нуль. Для простоти реалізації можна виконувати аналіз додаткового -го розряду, а завжди додавати одиницю округлення в -й розряд. Якщо в ньому міститься одиниця, то буде сформовано перенесення в молодший розряд частини, що зберігається, що еквівалентно доданню .
За такого методу округлення значення максимуму похибки становить
а математичне очікування похибки округлення (у разі рівноймовірної появи як чисел з різними знаками, так і нулів і одиниць у частині числа, що відкидається) дорівнює нулю. Якщо поява чисел різного знака не рівноймовірне, як часто буває при виконанні різних обчислень, то математичне очікування похибки округлення не дорівнює нулю і тому можливі систематичні помилки округлення. Однак ці помилки менші, ніж при усіченні, тому надалі використовуватимемо метод округлення за доповненням, якщо не зазначено інше.
Метод округлення за доповненням має ряд модифікацій для усунення недоліків. Так наприклад,систематичні помилки округлення зводяться до нуля, якщо рішення про корекцію частини, що зберігається, приймається на підставі аналізу не одного додаткового розряду, а всієї частини, що відсікається. Такий метод має назвуудосконаленого округлення за доповненням. Однак він не позбавлений недоліків, пов'язаних з тимчасовими і апаратурними витратами на аналіз частини числа, що відкидається, і поширення переносу, тому його застосування доцільно в обчислювальних пристроях, що вимагають підвищеної точності обчислень.
Для усунення складнощів з поширенням перенесення використовується так званий метод спрощеного округлення за доповненням. Його суть полягає в тому, що молодший розряд частини, що зберігається, встановлюється рівним одиниці в тому випадку, коли старший додатковий розряд дорівнює одиниці. Інакше корекція не виконується. При цьому, якщо в неокругленому числі молодший розряд частини, що зберігається, дорівнює одиниці, його значення не змінюється.
Якщо в неокругленому числі молодший розряд частини, що зберігається, дорівнює нулю, то максимальна похибка округлення при встановленні його в одиницю може скласти
Інакше максимальна похибка становитиме
При рівноймовірному появі нуля і одиниці в молодшому розряді частини, що зберігається для знакозмінних чисел значення математичного очікування похибки дорівнює нулю.
Метод спрощеного округлення за доповненням у випадку має математичне очікування похибки округлення, відмінне від нуля. Однак у тому випадку, коли кількість надлишкових розрядів округлення відбувається без накопичення систематичних помилок.