|
Числа можно выражать в следующей общепринятой экспоненциальной форме:
я=/х 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⇒
|