Таненбаум Э.- Архитектура компьютера. стр.537

Промежутки между смежными числами, которые можно выразить в представлении с плавающей точкой, в областях 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

10999

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

10999

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

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

Таненбаум Э.- Архитектура компьютера.

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

Стандарт IEEE 754

До 80-х годов каждый производитель поддерживал собственный формат чисел с плавающей точкой. Все они отличались друг от друга. Более того, в некоторых из них арифметические действия выполнялись неправильно, поскольку арифметика с плавающей точкой имеет некоторые тонкости, которые не очевидны для среднестатистического разработчика аппаратного обеспечения.

Чтобы изменить эту ситуацию, в конце 70-х годов институт IEEE учредил комиссию по стандартизации арифметики с плавающей точкой. Целью было не только дать возможность переносить данные с одного компьютера на другой, но и обеспечить разработчиков аппаратного обеспечения заведомо правильной моделью. В результате в 1985 г. вышел стандарт IEEE 754. В настоящее время большинство процессоров (в том числе Intel, SPARC и JVM) содержат команды с плавающей точкой, которые соответствуют этому стандарту. В отличие от многих стандартов, ставших плодом неудачных компромиссом и мало кого устраивавших, этот стандарт неплох, причем в значительной степени благодаря тому, что его изначально разрабатывал один человек, профессор математики университета Беркли Вильям Каган (William Kahan). Рассмотрим этот стандарт.


⇐ Предыдущая страница| |Следующая страница ⇒