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

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

Абсолютная величина мантиссы должна быть меньше единицы, а порядок - целым числом. В общем виде число представляется как N = ± m * S p где, m –мантисса числа N (дробная часть), S – основание системы счисления, P – целое число (порядок числа, показывает положение точки в числе).

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

Дробь, у которой первая цифра после запятой отлична от нуля, называется правильной.

Примеры записи чисел в нормализованном виде:

-10.3510 = -0.103510 *10+2 ;

0.000072458 = 0.7245*8-4 ;

FED4.6A16 = 0.FED46A16 *16+4.

На рис. 2.6 приведена форма представления чисел с плавающей точкой, использовавшаяся в первых ВМ с данным форматом чисел.

Диапазон и точность представления чисел с плавающей точкой зависят от числа разрядов, отводимых под порядок и мантиссу, от основания используемой системы счисления.

 
  Числа в форме с плавающей точкой - student2.ru

Числа в форме с плавающей точкой - student2.ru

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

0 1 8битов 8 9 23 бита 31

Числа в форме с плавающей точкой - student2.ru

а) одинарный;

Числа в форме с плавающей точкой - student2.ru Числа в форме с плавающей точкой - student2.ru Числа в форме с плавающей точкой - student2.ru Числа в форме с плавающей точкой - student2.ru Числа в форме с плавающей точкой - student2.ru Числа в форме с плавающей точкой - student2.ru 0 1 11 битов 11 12 52 бита 63

 
 
Знак числа Порядок (экспонента) Мантисса

б) двойной

 
 
Рис. 2.7. Основные форматы IEEE 754

Для упрощения операций над порядками в большинстве ВМ применяют так называемый смещенный порядок или экспоненту. Для этого к истинному порядку добавляется целое положительное число – смещение. Обычно смещение выбирается равным половине представимого диапазона порядков. В настоящее время для всех ВМ рекомендуемым является формат представления чисел с плавающей точкой, определенный стандартом IEEE 754. Этот стандарт был разработан для обеспечения переносимости программ с одного процессора на другие, он применяется практически во всех процессорах и математических сопроцессорах. На рис. 2.7 приведены основные форматы IEEE 754 для одинарной и двойной точности. Знак мантиссы занимает 1 разряд, принимает значения 0 для плюса, 1 для минуса. Смещенный порядок (экспонента) занимает 8(11) разрядов, знака не имеет. Минимальная экспонента 0, максимальная - 255 для одинарной точности и 2047 для удвоенной точности. Экспонента не используется для ненормализованных чисел. Значение экспоненты 1 соответствует -127 (-1024). Значение экспоненты равное 0 соответствует единичному значению старшего разряда экспоненты или 100000002 для одинарной точности и 100000000002 для удвоенной точности. Мантисса, значащая часть числа, занимает 24 для одинарной точности и 53 бита для двойной точности. В стандарте IEEE 754 под мантиссу отводится 23 (52) бита, но так как мантисса является нормализованной и ее первый разряд всегда должен быть равен 1, то при записи в память первый единичный разряд отбрасывается и под мантиссу отводится на 1 разряд меньше.



  Знак числа Абсолютная величина числа
N разряда
Число  

а) формат с фиксированной точкой

  Знак числа Порядок Мантисса
N разряда
Число  

б) формат с плавающей точкой

Рис. 2.8. Пример записи числа -19310 =-110000012 в разрядную сетку ВМ для форматов с фиксированной и плавающей точкой.  

На рис. 2.8 приводится пример записи числа -19310 =-110000012 в разрядную сетку ВМ для форматов с фиксированной и плавающей точкой.

110000012=0.110000012* 28 - нормализованный вид числа -19310 . Экспонента порядка 8 равна 100010002 . Первая единица разряда поля порядок означает, что порядок положительный. Первая «1» мантиссы в памяти не хранится.

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



Наши рекомендации