Как мне закончить преобразование с плавающей запятой одинарной точности в десятичную?
Я преобразую C22E8300 из плавающей запятой IEEE 754 с одинарной точностью в десятичную.
Сначала я преобразовал в двоичный код: 1100 0010 0010 1110 1000 0011...
Рассчитал показатель степени как 5. Мантисса составляет 0,24762
Как мне завершить конвертацию сейчас?
1 ответ
Пусть s будет первым битом, e будет следующими восемью битами (интерпретируется как двоичная цифра), а f будет оставшимися 23 битами (интерпретировано как двоичная цифра).
Если e равно нулю, представленное значение равно (−1)s • f/ 223 • 2−126.
Если e равно 255 и f равно нулю, представленное значение равно +∞ или -∞, в зависимости от того, равно ли s 0 или 1 соответственно.
Если e равно 255, а f не равно нулю, объект является NaN.
В противном случае представленное значение составляет (−1)с • (1+f/ 223) • 2e−127.