Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ЭВМ и ПУ.doc
Скачиваний:
64
Добавлен:
16.03.2015
Размер:
1.16 Mб
Скачать

4.3.Формирование специальных значений в особых случаях

4.3.1. Случай неточного результата.

В качестве специального значения используется приближенное значение числа с плавающей точкой. Существуют четыре режима округления:

в направлении к 0 (обычно для целочисленной арифметики);

до ближайшего числа (если результат посередине, то выбирается ближайшее четное число).

округление к + 

округление к - 

Режимы c) и d) используются для реализации интервальной арифметики : операция выполняется дважды: с округлением к +и с округлением к-. Истинный результат находится между двумя результатами, следовательно не требуется анализ ошибок округления. При инициализации сопроцессора по умолчанию устанавливается режим округления к ближайшему числу, однако программист может его изменить.

4.3.2.Численное антипереполнение.

Принято соглашение, что для денормализованного числа поле порядка 00..00 считается равным 00...01, но старший бит мантиссы равен 0 (а не 1). Для одинарной точности смещение равно 127, следовательно, поле порядка 00000001 соответствует порядку - 126.

Пример :

Знак

Порядок

Старший бит мантиссы

Мантисса – 23 бита

0

00000001

1

10...00

= 1.12*2-126- норм.

0

00000001

1

00...00

=1.02*2-126- норм.

0

00000000

0

10...00

=0.12*2-126- денорм.

0

00000000

0

01...00

=0.12*2-127- денорм.

............

................

.................................

0

00000000

0

00...01

=0.12*2-149– денорм.

Точность минимального числа равна 1 биту, то есть происходит потеря точности ради расширения диапазона. Специальное значение - денормализованное число, а если результат мал для денормализованого числа, то в качестве результата формируется нуль.

На числовой оси плотность представимых чисел выше у нуля и ниже у максимальных значений.

+++++++

++-+++-+++-+

++-++-++-+-+-+-+-+-

+- -+- -+- - -+- - -+

0 Денорм.

 Нормализованные числа

4.3.3. Денормализованный операнд.

Для денормализованных операндов выполняются следующие правила формирования результатов операций:

Результат равен 0, если он слишком мал для представления денормализованным числом (например, при умножении двух денормализованных чисел).

Результат - денормализованное число, если он представим в формате денормализованных чисел ( например, при сложении двух денормализованных чисел).

Результат - нормализованное число, если неточность денормализованного числа влияет на результат меньше, чем ошибка округления (например, при сложении денормализованного и большого нормализованного числа).

Результат - ненормализованное число, если результат слишком велик для денормализованного числа, неточный, а приемник имеет расширенную точность (например, при сложении денормализованного и большого нормализованного числа).

Ненормализованным числом называется число с расширенной точностью, имеющее обычное (ненулевое и неединичное) поле порядка и нулевой старший бит мантиссы.

Ненормализованные операнды в операциях подчиняются правилам для денормализованных чисел. Особый вид ненормализованного числа - псевдоноль. Псевдоноль имеет ненулевое поле порядка и нулевую мантиссу. В сравнениях псевдонули считаются нулями. Данный формат чисел поддерживается сопроцессором модели 80287 и не поддерживается моделью 80387 и устройством с плавающей точкой процессора 80486 и последующих моделей, так как уточнился стандарт представления чисел с плавающей точкой.

Результат - особый случай недействительной операции (наример, при делении на денормализированное число или попытке извлечения квадратного корня из денормализованного числа).