Особенности формата представления данных IEEE 754


IEEE 754 - стандарт разработанный ассоциацией IEEE (Institute of Electrical and Electronics Engineers) и использующийся для представления действительных чисел (чисел с плавающей точкой) в двоичном коде. Наиболее используемый стандарт для вычислений с плавающей точкой, используется многими микропроцессорами и логическими устройствами, а также программными средствами.

Стандарт IEEE 754-1985 определяет:

    - как представлять нормализованные положительные и отрицательные числа с плавающей точкой, - как представлять денормализованные положительные и отрицательные числа с плавающей точкой, - как представлять нулевые числа, - как представлять специальную величину бесконечность (Infinity), - как представлять специальную величину "Не число" (NaN или NaNs), - четыре режима округления.

IEEE 754-1985 определяет четыре формата представления чисел с плавающей запятой:

    - с одинарной точностью (single-precision) 32 бита, - с двойной точностью (double-precision) 64 бита, - с одинарной расширенной точностью (single-extended precision) >=43 бит (редко используемый), - с двойной расширенной точностью (double-extended precision) >= 79 бит (обычно используют 80 бит).

Формат с повышенной точностью предназначен для уменьшения ошибки округления. Он применяется главным образом в арифметических устройствах с плавающей точкой, поэтому мы не будем о нем говорить. В форматах с одинарной и удвоенной точностью используются основание степени 2 для мантисс и смещенная экспонента.

Числа одинарной точности -- это числа с плавающей точкой, для представления которых используется 32 бита: 1 бит на знак, 8 бит на порядок и 23 бита на мантиссу.

Числа двойной точности -- это числа с плавающей точкой, для представления которых используется 64 бита: 1 бит на знак, 11 бит на порядок и 52 бита на мантиссу.

Форматы представлены на рис. 1: одинарная точность (а), удвоенная точность (б).

Рис. 1

Согласно стандарту IEEE 754, битовое представление чисел с плавающей точкой содержит три составляющие: знак, порядок и мантиссу. Под знак отводится один бит (значение 0 соответствует положительным числам, 1 -- отрицательным); число бит, отводимое под порядок и мантиссу, зависит от типа чисел.

Пусть под порядок отводится n бит. Число B = 2n-1 - 1 называется смещением порядка (bias). Знаковый бит S, порядок E и мантисса M числа x определяют его значение по следующим правилам:

X = (-1)S - 2e - (1+M/2n), (1)

Где: * если E ? 0, то e = E - B; иначе, e = - B + 1.

Если 0 < E < 2n - 1, то m имеет двоичное представление 1.M, то есть целая часть m равна 1 (представление числа в нормализованном экспоненциальном виде), а последовательность цифр дробной части совпадает с последовательностью бит M; если E = 0, то m имеет двоичное представление 0.M, такие числа (с нулевым порядком) называются денормализованными.

Для расчета денормализованных чисел используется следующая формула:

Двоичный мантисса денормализованный экспонента

X = (-1)S - 2e+1 - (M/2n).

Заметим, что среди чисел с плавающей точкой существует число -0, которое стандарт требует считать равным 0.

Стандартом определены особые комбинации значений порядка и мантиссы:

    * бесконечности (±?) -- все разряды порядка равны единице, мантисса равна нулю (E = 2n - 1, M = 0); * не-число (NaN, Not-a-Number) -- все разряды порядка равны единице, мантисса отлична от нуля (E = 2n - 1, M ? 0).

Значения NaN подразделяются на тихие (QNAN, Quiet NaN) и сигнальные (SNaN, Signaling NaN), которые отличаются старшим битом мантиссы: если он равен единице, это QNaN; в противном случае -- SNaN.

Для расчета денормализованных чисел используется следующая формула:

X = (-1)S - 2e+1 - (M/2n)

Похожие статьи




Особенности формата представления данных IEEE 754

Предыдущая | Следующая