Преобразование в IEEE 754 Справка по формату с плавающей запятой одинарной точности - PullRequest
2 голосов
/ 23 апреля 2011

Как бы число 0,1011 * 2-101 было представлено в этом формате?

Я предполагаю, что показатель будет -101, а дробь будет 1011.

Таким образом, число будет:

The sign : 1 (since is is -101).
The exponent : 101 in binary, which is: 

    101/2= 50 R1
    50/2 = 25 R0
    25/2 = 12 R1
    12/2 = 6  R0
    6/2 = 3   R0
    3/2 = 1   R1
    1/2 = 0   R1
    101 = 1100101

The fraction : 1011-0000-0000-0000-0000-0000 


So the full number is :

    1 1100101 1011-0000-0000-0000-0000-0000 

1 Ответ

3 голосов
/ 23 апреля 2011

Закрыть.

Поле значимости и нормализовано в форме 1.xxx... (насколько позволяет диапазон экспоненты), поэтому значение значащего равно 1.011, а показатель степени равен -102.

Поле знака является знаком числа, а не знаком степени, поэтому знак равен нулю.Экспонента кодируется путем добавления смещения 127;таким образом, смещенный показатель степени, который фактически кодируется, равен

-102 + 127 = 25
           = b00011001

Последняя деталь заключается в том, что, поскольку известно, что старший бит поля значимости и поля равен единице, он исключается из закодированного числа с плавающей запятой, что позволяет получить еще одну цифруточности.Таким образом, закодированное число:

0 00011001 01100000000000000000000
s exponent       significand

или, в шестнадцатеричном виде, 0x0cb00000.

...