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

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

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

X = ±mq±p ,

где т — мантисса числа Х, р — порядок числа, q — основание системы счисления.

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

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

Диапазон и точность представления чисел с ПЗ зависят от числа разрядов, отводимых под порядок и мантиссу. На рис. 19 показаны диапазоны разрядностей порядка и мантиссы, характерные для известных ВМ.

Помимо разрядности порядка и мантиссы, диапазон представления чисел зависит и от основания используемой системы счисления, которое может быть отличным от 2. Например, в универсальных ВМ (мэйнфреймах) фирмы IBM используется база 16. Это позволяет при одинаковом количестве битов, отведенных под порядок, представлять числа в большем диапазоне. Так, если поле порядка равно 7 битам, максимальное значение qp, на которое умножается мантисса, равно 2128 (при q = 2) или 16128 (при q = 16), а диапазоны представления чисел соответственно составят:

10-19 < |Х| < 10+19 и 10-76 < |Х| < 10+76. Известны также случаи использования базы 8, например, в ВМ В-5500 фирмы Burroughs.

Рис.19 Типовые разрядности полей порядка и мантиссы

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

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

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

  • двоичная: X = т∙2p, (1 > |т| ≥ 1/2);

  • восьмеричная: Х=m∙8р, (1 > |т| 1/8)

  • шестнадцатеричная: Х=m∙16p, (1 > |т| 1/16)

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

База

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

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

Порядок

Мантисса

Порядок

Мантисса

2

100

0,000110

001

0,110000

16

8

0,001010

6

0,101000

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

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

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

Рассмотренные принципы представления чисел с ПЗ поясним на примере [143]. На рис. 2.21 представлен типичный 32-битовый формат числа с ПЗ. Старший (левый) бит содержит знак числа. Значение смещенного порядка хранится в разрядах с 30-го по 23-й и может находиться в диапазоне от 0 до 255.

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

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

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

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

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

  • отрицательные числа между -(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-128 положительная потеря значимости;

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

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

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

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

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

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

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

Параметр

IBM 390

VAX

IEEE 754

Длина слова, бит

О:32; Д: 64

О:32; Д: 64

О:32; Д: 64

Порядок, бит

7

8

О:8; Д: 11

Мантисса,m

О:6 цифр

Д: 14 цифр

О: (1) + 23 бита

Д: (1) + 55 бита

О: (1) + 23 бита

Д: (1) + 52 бита

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

64

128

О:127; Д: 1023

Основание системы счисления

16

2

2

Скрытая 1

Нет

Да

Да

Запятая

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

Слева от

скрытой 1

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

Диапазон мантиссы

(1/16)≤m<1

(1/2)≤m<1

1≤m<1

Представление мантиссы

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

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

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

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

1663≡1076

2126≡1038

21024≡10308 (Д)

Точность

О: 16-6≡10-7

Д: 16-14≡10-17

О: 2-24≡10-7

Д: 2-564≡10-17

О: 2-23≡10-7

Д: 2-524≡10-16

Где О – одинарный формат; Д – двойной формат.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]