Машинное представление данных типа double
Машинное представление данных типа 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 632). Десятичное число 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 010000004). Значения верхней и нижней границ диапазона положительных чисел:
~1.8*10^308 - 11111111 11111111 11111111 11111111 11111111 11111111 11101111 01111111 ~4.9*10^(-324) - 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000Символ ~ обозначает приближенное значение числа.