Машинное представление данных типа DOUBLE

Формат машинного представления данных типа DOUBLE следующий:

мл.байт ст.байт

7 0 15 8 23 16 31 24 39 32 47 40 55 52 51 48 63 56

м...м м...м м...м м...м м...м м...м х..х м...м s x..x

-44 -50 -37 -43 -29 -36 -21 -28 -13 -20 -5 -12 3 0 -1 -4 10 4

где:

· верхняя строка цифр от 0 до 63 - номера разрядов памяти;

· нижняя строка цифр от -50 до -1 - показатели степеней разрядов мантиссы; от 0 до 10 - разрядов характеристики;

· s - знаковый разряд числа;

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

· х - характеристика числа (x=2^10-1+p, где p - порядок нормализованного числа).

Например:

1). Число 15.375;

в двоичной системе счисления 1111.011;

результат нормализации 1.111011*2^3; р=3.

Учитывая отбрасывание скрытой единицы и сдвиг порядка, получаем: s=0; x=2^10-1+3=2^10+2^1=1026;

в двоичной системе счисления х=10000000010; m=1110110...0;

машинное представление числа в формате DOUBLE:

0 00000000 00000000 00000000 00000000 31

32 00000000 11000000 00101110 01000000 63

2). Десятичное число 0.0375;

в двоичной системе счисления 0.011;

результат нормализации 1.1*2^(-2); р=-2.

Учитывая отбрасывание скрытой единицы и сдвиг порядка, получаем: s=0; x=2^10-2^1-2^0=2^10-3;
в двоичной системе счисления х=01111111101; m=100...0;

машинное представление числа в формате DOUBLE:

0 00000000 00000000 00000000 00000000 31

32 00000000 00000000 11011000 00111111 63

3). Десятичное число 2.5;

аналогичные выкладки дают нормализованную мантиссу: 1.0100...0;

машинное представление числа 2.5:

00000000 00000000 00000000 00000000

00000000 00000000 00000100 01000000

4). Значения верхней и нижней границ диапазона положительных чисел:

~1.8*10^308 - 11111111 11111111 11111111 11111111

11111111 11111111 11101111 01111111

~4.9*10^(-324) - 00000001 00000000 00000000 00000000

00000000 00000000 00000000 00000000

Символ ~ обозначает приближенное значение числа.