Спеціальні числові значення та особливі обчислювальні ситуації 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Спеціальні числові значення та особливі обчислювальні ситуації



До спеціальних числових значень відносяться: денормалізовані дійсні числа, нулі, нескінченності, не числа, невизначеність, не підтримувані формати.

Денормалізовані дійсні числа мають: знак – будь-який, характеристика – всі нулі, мантиса – принаймні старший біт дорівнює нулеві, але мантиса не дорівнює нулю. Ці числа менші мінімального нормалізованого числа для кожного з форматів (ОТ, ПТ, РТ).

Нуль ( щекажуть істинний нуль ). Значення нуль у дійсних (ОТ, ПТ, РТ) і десятковій формах є знакове, тобто знаковий біт s або 0, або 1, а в двійковій (цілі числа) нуль завжди додатній (знаковий біт s – 0). В обчисленнях знак нуля не враховується. В дійсних формах нуль зображується так: s 00…0 00…0 (знак s – 0 або 1, характеристика – нулі, мантиса – нулі).

Нескінченність (безмежність). Дійсні форми підтримують знакові зображення безмежностей. Їх коди: s 11…1 1.00…0. Знаки безмежностей враховуються і можливі порівняння. Безмежності інтерпретуються в афінному розумінні, тобто .

Не числа – представники класу спеціальних значень. Вони мають: знак будь-який, характеристика – всі одиниці, мантиса – будь-яка, за винятком 1.00…0 (така мантиса в ).

Невизначеність – FPU формує спеціальне не число, яке називається дійсною невизначеністю, як реакцію на замаскований особливий випадок – не дійсна операція. Це не число має: знак (від’ємний знак), характеристику – 11…1 і мантису – 1.10…0. Таке спеціальне не число передбачене для випадку, коли відповідь – не знаю (наприклад, ділення безмежність на нуль). Інші не числа створюються або програмістом, або одержуються зі значень, визначених програмістом, і використовуються для прискорення налагодження програм.

Не підтримувані формати. Формат РТ має багато двійкових наборів, які не попадають ні в один з розглянутих класів. Сюди відносяться: псевдо не числа (знак – будь-який, характеристика – 11…1, мантиса – старший біт дорівнює 0, а решта бітів будь-які двійкові набори), псевдо нескінченність (знак – будь-який, характеристика – 11…1, мантиса – 00…0), не нормалізовані – (знак – будь-який, від 11…10 0.11…11 до 00…01 0.00…00), псевдо денормалізовані – (знак – будь-який, характеристика – всі нулі, мантиса від 1.00…0 до 1.11… 1).

Особливі випадки: точність, антипереповнення, переповнення, ділення на нуль, денормалізований операнд, недійсна операція.

У випадку виникнення особливих випадків, які не замасковані (маски особливих випадків в регістрі CW), FPU активно сигналізує про особливий випадок, що може призвести до виклику обробника особливої ситуації, що, як правило, зумовить аварійне завершення програми, в якій вона з’явилася. Якщо особлива ситуація замаскована, то FPU діє за правилами, описаними нижче:

денормалізований операнд (найменша характеристика і ненульова мантиса) – продовжує виконання операції як звичайно;

ділення на нуль – (дільник =0, ділене не нуль і не безмежність) повернути як результат операції безмежність з правильним знаком;

переповнення (результат операції надто великий для зображення у форматі приймача) – повернути як результат операції найбільше скінченне число або нескінченність;

антипереповнення (істинний результат операції не дорівнює 0, але надто малий для подання у форматі приймача. Або, якщо антипереповнення замасковане, денормалізація викликає втрату значимості) – повернути як результат операції денормалізоване число або нуль;

точність ( істинний результат операції точно не зображуваний у форматі приймача або результат заокруглюється у відповідності з режимом заокруглення) – продовжити операцію як звичайно.

Найважчим є особливий випадок недійсна операція: сюди відносяться всі помилкові ситуації, не виявлені розглянутими вище особливими випадками, що, як правило, свідчить про помилку в програмі. Найкраще що можна зробити в цьому випадку, повернути тихе не число (знак – будь-який, характеристика – всі одиниці, мантиса від 0.11…11 до 0.10…00) або невизначеність. Такий результат забезпечить поширення цієї ситуації в подальших обчисленнях.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 283; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.105.31 (0.004 с.)