Машинное представление данных типа 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 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

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



Содержание раздела