Реклама:

Числа можно выражать в следующей общепринятой экспоненциальной форме:

я=/х 10е, где / называется дробью, или мантиссой, а е (это положительное или отрицательное целое число) - экспонентой. Компьютерная версия такого представления называется представлением числа с плавающей точкой. Вот примеры чисел в такой записи:

3,14 = 0,314 х 101 = 3,14 х 10°

0,000001 = 0,1 х 10"5 = 1,0 х Ю"6

1941 = 0,1941 х 104 = 1,941 х 103

Область значений определяется по числу разрядов в экспоненте, а точность - по числу разрядов в мантиссе. Существует несколько способов представления того или иного числа, поэтому одна форма выбирается в качестве стандартной. Чтобы изучить свойства такого способа представления, рассмотрим представление с трехразрядной мантиссой со знаком в диапазоне 0,1 < |/| < 1 и двухразрядной экспонентой со знаком. Эти числа находятся в диапазоне от +0,100 х 10"" до +0,999 х 10+", то есть простираются почти на 199 значимых разрядов, хотя для записи числа требуется всего 5 разрядов и 2 знака.

Числа с плавающей точкой можно использовать для моделирования системы действительных чисел в математике, хотя здесь есть несколько существенных различий. На рис. Б.1 представлена ось действительных чисел. Она разбита на 7 областей:

1. Отрицательные числа меньше -0,999 х 10".

2. Отрицательные числа от -0,999 х 10" до -0,100 х 10"".

3. Отрицательные числа от -0,100 х 10"" до нуля.

4. Нуль.

5. Положительные числа от 0 до 0,100 х 10"".

6. Положительные числа от 0,100 х 10"" до 0,999 х 10".

7. Положительные числа больше 0,999 х 10".

Принципы представления чисел с плавающей точкой

Рис. Б.1. Ось действительных чисел разбита на 7 областей

Первое отличие действительных чисел от чисел с плавающей точкой, которые записываются тремя разрядами в мантиссе и двумя разрядами в экспоненте, состоит в том, что последние нельзя использовать для записи чисел из областей 1, 3, 5 и 7. Если в результате арифметической операции получится число из области 1 или 7 (например, 1060 х 1060 = 10120), то произойдет ошибка переполнения и результат будет неверным. Причина - ограничение области значений чисел в данном представлении. Точно так же нельзя выразить результат из области 3 или 5. Такая ситуация называется ошибкой потери значимости. Эта ошибка менее серьезна, чем ошибка переполнения, поскольку часто нуль является вполне удовлетворительным приближением для чисел из областей 3 или 5. Остаток счета в банке на 10~102 не сильно отличается от нулевого остатка счета.

Второе важное отличие чисел с плавающей точкой от действительных чисел - их плотность. Между любыми двумя действительными числами х и у существует другое действительное число независимо от того, насколько близко к у расположено число х. Это свойство вытекает из того, что для любых отличных действительных чисел х и у между ними существует действительное число г = (х + у)/2. Действительные числа формируют континуум.

Числа с плавающей точкой континуума не формируют. В двухзнаковой пятиразрядной системе можно выразить ровно 179 100 положительных чисел, 179 100 отрицательных чисел и 0 (который можно выразить разными способами), то есть всего 358 201 чисел. Из бесконечного числа действительных чисел в диапазоне от -10+10° до +0,999 х 10" в этой системе можно выразить только 358 201 число. На рис. Б.1 эти числа показаны точками. Результат вычислений может быть и другим числом, даже если он находится в области 2 или 6. Например, результат деления числа +0,100 х 103 на 3 нельзя выразить точно в нашем представлении. Если полученное число нельзя выразить с помощью используемого представления, нужно брать ближайшее представимое число. Такой процесс называется округлением.

Промежутки между смежными числами, которые можно выразить в представлении с плавающей точкой, в областях 2 и 6. не постоянны. Промежуток между числами +0,998 х 10" и +0,999 х 10" гораздо больше промежутка между числами +0,998 х 10° и +0,999 х 10°. Однако если промежутки между числом и его соседом выразить как процентное отношение от этого числа, большой разницы в промежутках не будет. Другими словами, относительная погрешность, полученная при округлении, приблизительно равна и для малых, и для больших чисел.

Выводы, сделанные для системы представления с трехразрядной мантиссой и двухразрядной экспонентой, справедливы и для других представлений чисел. При изменении числа разрядов в мантиссе или экспоненте просто сдвигаются границы областей 2 и 6, и меняется число представляемых единиц в этих областях. С увеличением числа разрядов в мантиссе увеличивается плотность элементов и, следовательно, точность приближения. С увеличением количества разрядов в экспоненте области 2 и 6 увеличиваются за счет уменьшения областей 1, 3, 5 и 7. В табл. Б.1 показаны приблизительные границы области 6 для десятичных чисел с плавающей точкой и различным количеством разрядов в мантиссе и экспоненте.

Таблица Б.1. Приблизительные верхняя и нижняя границы чисел с плавающей точкой

Количество разрядов в мантиссе

Количество разрядов в экспоненте

Нижняя граница

Верхняя граница

10~12

1 0-102

10"

! 0-ю02

 

1 О"1 °002

1 09999

ю-13

! 0-юз

10"

Ю-1 ооз

10999

Ю-1 оооз

1 о9999

і 0-14

ю9

1 0-ю4

10"

Ю-1004

ю"9

Ю-10004

1 09999

10~ю09

ю"9

Ю-1019

ю999

Вариант такого представления применяется в компьютерах. Основа возведения в степень - 2, 4, 8 или 16, но не 10. В этом случае мантисса состоит из цепочки двоичных, четверичных, восьмеричных и шестнадцатеричных разрядов. Если крайний левый разряд равен 0, то все разряды можно сместить на один влево, а экспоненту уменьшить на 1, не меняя при этом значения числа (исключение составляет ситуация потери значимости). Мантисса с ненулевым крайним левым разрядом называется нормализованной.

Нормализованные числа обычно предпочитаются ненормализованным, поскольку существует только одна нормализованная форма, а ненормализованных форм может быть много. Примеры нормализованных чисел с плавающей точкой даны на рис. Б.2 для двух оснований степени. В этих примерах показана 16-разрядная мантисса (включая знаковый бит) и 7-разрядная экспонента. Точка находится слева от крайнего левого бита мантиссы и справа от экспоненты.

Принципы представления чисел с плавающей точкой

Рис. Б.2. Примеры нормализованных чисел с плавающей точкой

Приложение Б. Числа с плавающей точкой || Оглавление || Стандарт IEEE 754