Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
123
Добавлен:
10.05.2015
Размер:
513.54 Кб
Скачать

Числа в форме с плавающей запятой

От недостатков ФЗ в значительной степени свободна форма представления чисел с плавающей запятой (ПЗ), известная также под названиями нормальной или по­лулогарифмической формы. В данном варианте каждое число разбивается на две группы цифр. Первая группа цифр называется мантиссой, вторая — порядком. Число представляется в виде произведения X = ±mq±p, где т — мантисса числа X, р — порядок числа, q — основание системы счисления.

Для представления числа в форме с ПЗ требуется задать знаки мантиссы и по­рядка, их модули в q-ичном коде, а также основание системы счисления (рис. 8.7). Нормальная форма неоднозначна, так как взаимное изменение тир приводит к «плаванию» запятой, чем и обусловлено название этой формы.

Рис. 8.7. Форма представления чисел с плавающей запятой.

Диапазон и точность представления чисел с ПТ зависят от числа разрядов, от­водимых под порядок и мантиссу. Помимо разрядности порядка и мантиссы диапазон представления чисел зави­сит и от основания используемой системы счисления, которое может быть отлич­ным от 2. Например, в универсальных ВМ (мэйнфреймах) фирмы IBM использу­ется база 16. Это позволяет при одинаковом количестве битов, отведенных под порядок, представлять числа в большем диапазоне. Так, если поле порядка равно 7 битам, максимальное значение qp , на которое умножается мантисса, равно 2128 (при (q = 2) или 16128 (при q = 16), а диапазоны представления чисел соответствен­но составят 10-19 < |Х| < 10+19 и 10-76 < |Х| < 10+76. Известны также случаи использо­вания базы 8, например, в ВМ В-5500 фирмы Burroughs.

В большинстве вычислительных машин для упрощения операций над поряд­ками последние приводят к целым положительным числам, применяя так называ­емый смещенный порядок. Для этого к истинному порядку добавляется целое по­ложительное число — смещение (рис. 8.8). Например, в системе со смещением 128 порядок -3 представляется как 125 (-3 + 128). Обычно смещение выбирается равным половине представимого диапазона порядков. Отметим, что смещенный порядок занимает все биты поля порядка, в том числе и тот, который ранее ис­пользовался для записи знака порядка.

Рис.8.8.Форма числа с ПЗ со смещенным порядком

Мантисса в числах с ПЗ обычно представляется в нормализованной форме. Это означает, что на мантиссу налагаются такие условия, чтобы она по модулю была меньше единицы (|q| < 1), а первая цифра после точки отличалась от нуля. Полу­ченная таким образом мантисса называется нормализованной. Для применяемых в ВМ систем счисления можно записать:

  • двоичная: X = q2p, (1 > |q| = S);

  • восьмеричная: X = q8p, (1 > |q| = ?);

  • шестнадцатеричная: X = q16p, (1 > |q| =1/16).

Если первые i цифр мантиссы равны нулю, для нормализации ее нужно сдви­нуть относительно запятой на i разрядов влево с одновременным уменьшением порядка на i единиц. В результате такой операции число не изменяется.

База

До нормализации

После нормализации

Порядок

Мантисса

Порядок

Мантисса

2

100

0,000110

001

0,110000

16

8

0,001 х 109

6

0,1 х 1900

В примере для шестнадцатеричной системы после нормализации старшая цифра в двоичном представлении содержит впереди три нуля (0001). Это несколько умень­шает точность представления чисел по сравнению с двоичной системой при оди­наковом числе двоичных разрядов, отведенных под мантиссу.

Если для записи числа с ПЗ используется база 2 (q = 2), то часто применяют еще один способ повышения точности представления мантиссы, называемый при­емом скрытой единицы. Суть его в том, что в нормализованной мантиссе старшая цифра всегда равна единице (для представления нуля используется специальная кодовая комбинация), следовательно, эта цифра может не записываться, а подра­зумеваться. Запись мантиссы начинают с ее второй цифры, и это позволяет задей­ствовать дополнительный значащий бит для более точного представления числа. Следует отметить, что значение порядка в данном случае не меняется. Скрытая единица перед выполнением арифметических операций восстанавливается, а при записи результата — удаляется. Таким образом, нормализованная мантисса 0,101000(1) при использовании способа «скрытой единицы» будет иметь вид 0,010001 (в скобках указана цифра, не поместившаяся в поле мантиссы при стан­дартной записи).

Для более существенного увеличения точности вычислений под число отводят несколько машинных слов, например два. Дополнительные биты, как правило, служат для увеличения разрядности мантиссы, однако в ряде случаев часть из них может отводиться и для расширения поля порядка. В процессе вычислений может получаться ненормализованное число. В таком случае ВМ, если это предписано командой, автоматически нормализует его.

Рассмотренные принципы представления чисел с ПЗ поясним на примере. На рис.8.9 представлен типичный 32-битовый формат числа с ПЗ. Старший (ле­вый) бит содержит знак числа. Значение смещенного порядка хранится в разрядах с 1-го по 8-й и может находиться в диапазоне от 0 до 255. Для получения фактичес­кого значения порядка из содержимого этого поля нужно вычесть фиксированное значение, равное 128. С таким смещением фактические значения порядка могут лежать в диапазоне от -128 до +127. В примере предполагается, что основание си­стемы счисления равно 2. Третье поле слова содержит нормализованную мантис­су со скрытым разрядом (единицей). Благодаря такому приему 23-разрядное поле позволяет хранить 24-разрядную мантиссу в диапазоне от 0,5 до 1,0.

Рис. 8.9. Типичный 32-битовый формат числа с плавающей запятой.

На рис. 8.10 приведены диапазоны чисел, которые могут быть записаны с по­мощью 32-разрядного слова.

Рис. 8.10. Числа, представимые в 32-битовых форматах: а — целые числа с фиксированной запятой; б — числа с плавающей запятой.

В варианте с ФЗ для целых чисел в дополнительном коде могут быть представ­лены все целые числа от -231 до 231 - 1, то есть всего 232 различных чисел (см. рис. 8.10, а). Для случая ПЗ возможны следующие диапазоны чисел (см. рис. 8.10, б):

  • отрицательные числа между -(1 - 2-24) х 2127 и -0,5 х 2-128;

  • положительные числа между 0,5 х 2-128 и (1 - 2-24) х 2127.

В эту область не включены пять участков:

  • отрицательные числа, меньшие чем -(1 - 2-24) х 2127отрицательное пере­полнение;

  • отрицательные числа, большие чем -0,5 х 2-128отрицательная потеря зна­чимости;

  • положительные числа, меньшие чем 0,5 х 2-28 — положительная потеря значи­мости;

  • положительные числа, большие чем (1 - 2-2А) х 2127положительное переполнение.

Показанная запись числа с ПЗ не учитывает нулевого значения. Для этой цели используется специальная кодовая комбинация. Переполнения возникают, когда в результате арифметической операции получается значение большее, чем можно представить порядком 127 (2120 х 2100 = 2230). Потеря значимости — это когда резуль­тат представляет собой слишком маленькое дробное значение (2-120 х 2-100 = 2-230). Потеря значимости является менее серьезной проблемой, поскольку такой резуль­тат обычно рассматривают как нулевой.

Следует также отметить, что числа в форме с ПЗ, в отличие от чисел в форме с ФЗ, размещены на числовой оси неравномерно. Возможные значения в начале числовой оси расположены плотнее, а по мере движения вправо — все реже (рис.8.11). Это означает, что многие вычисления приводят к результату, который не является точным, то есть представляет собой округление до ближайшего значе­ния, представимого в данной форме записи.

Рис. 8.11. Плотность чисел с плавающей запятой на числовой оси.

Для формата, изображенного на рис.8.9, имеет место противоречие между диа­пазоном и точностью. Если увеличить число битов, отведенных под порядок, рас­ширяется диапазон представимых чисел. Однако, поскольку может быть представ­лено только фиксированное число различных значений, уменьшается плотность и тем самым точность. Единственный путь увеличения как диапазона, так и точ­ности — увеличение количества разрядов, поэтому в большинстве ВМ предлагает­ся использовать числа в одинарном и двойном форматах. Например, число оди­нарного формата может занимать 32 бита, а двойного — 64 бита.

Числа с плавающей запятой в разных ВМ имеют несколько различных форма­тов. В табл. 3.1 приводятся основные параметры для нескольких систем представ­ления чисел в форме с ПЗ. В настоящее время для всех ВМ рекомендован стан­дарт, разработанный общепризнанным международным центром стандартизации IEEE (Institute of Electrical and Electronics Engineers).

Таблица 8.1. Варианты форматов чисел с плавающей запятой

Параметр

IBM 390

VAX

IEEE 754

Длина слова(бит)

О: 32; Д: 64

0:32; Д: 64

О: 32; Д: 64

Порядок (бит)

7 бит

8 бит

О:8;Д:11

Мантисса (F)

О: 6 цифр; Д: 14 цифр

О: (1) +23 бита Д:(1) + 55 бит

О: (1) +23 бита Д:(1) + 52 бита

Смещение порядка

64

128

К: 127; Д: 1023

База

16

2

2

Скрытая 1

Нет

Да

Да

Запятая

Слева от мантиссы

Слева от скрытой 1

Справа старшего бита мантиссы

Диапазон F

(1,16)<=F<1

0,5 <= F < 1

1<=F<2

Представление F

Величина со знаком

Величина со знаком

Величина со знаком

Максимальное положительное число

1663=1076

2126 = 1038

21 024 = 10 308 (Д)

Точность

О:16-6=10-7

Д:16-14=10-17

0:2-24=10-7 Д: 2-564 = 10-17

О:2-23=10-7 Д:2-524=10-16

Соседние файлы в папке Lection