Представление данных с плавающей точкой в Java

У вещественного числа X можно выделить три части: знак S, мантисса M и порядок P. Знак S числа X – это знак его мантиссы. Мантисса M представляет собой значащую часть (цифры) числа, порядок P указывает на сколько разрядов влево (отрицательный порядок) или вправо (положительный порядок) нужно перенести запятую в мантиссе M. Значение вещественного числа X можно определить по формуле

 
 


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

Вещественное число считается нормализованным, если его мантисса

,

Например, у десятичного числа

       
 
   
 


нормализованная мантисса

 
 


Соответственно порядок.

Еще примеры:

 
 


       
 
 
 
 
 


Как мы знаем, числа представляются в ЭВМ в двоичной системе счисления. На рисунке 2.1 изображен стандартный формат представления чисел с плавающей точкой IEEE-754, который используется в Java.

Рисунок 2.1 – Формат IEEE-754

S – бит знака числа: если S=0, число положительное,

если S=1, число отрицательное;

E – смещенный порядок (экспонента) двоичного числа;

 
 


─ заданное смещение экспоненты (позволяет задавать

только положительную экспоненту, т.е. не выделять дополнительный бит для ее знака);

─ несмещенное (настоящее) значение порядка;

M ─ остаток мантиссы двоичного нормализованного числа с плавающей точкой.

Двоичное число с плавающей точкой создатели формата IEEE-754 считают нормализованным, если 1<=Mантисса<2. Такая мантисса всегда начинается с 1. Нет смысла хранить эту единицу в отведенных n битах. Поэтому в n битах хранят только дробную часть ─ остаток от мантиссы M (экономят один бит точности).

Формула вычисления десятичных чисел с плавающей точкой, из чисел, представленных в стандарте IEEE-754:

 
 


Интерпретации формата IEEE-754 для типа с одинарной точностью (float) и типа с двойной точностью (double) приведены на рисунке 2.2.

Заметим, что точность представления чисел определяется числом разрядов мантиссы. Число разрядов порядка определяет диапазон чисел (таблица 2.1).

Рисунок 2.2 – Интерпретации формата IEEE-754 для типов

с одинарной и двойной точностью

Пример представления вещественного числа в формате float приведен на рисунке 2.3.

 
 


Рисунок 2.3 – Пример представления вещественного

числа в формате float


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: