Как мне закончить преобразование с плавающей запятой одинарной точности в десятичную? - PullRequest
0 голосов
/ 19 ноября 2018

Я конвертирую C22E8300 из плавающей запятой IEEE 754 с одинарной точностью в десятичное число.

Сначала я преобразовал в двоичный файл: 1100 0010 0010 1110 1000 0011 ...

Рассчитал показатель степени как 5 . Мантисса 0,24762

Как мне теперь завершить конвертацию?

1 Ответ

0 голосов
/ 19 ноября 2018

Пусть s будет первым битом, e будет следующими восемью битами (интерпретируется как двоичная цифра), а f будет оставшимися 23 битами (интерпретируется как двоичное число).

Если e равно нулю, представленное значение равно (−1) s f / 2 23 • 2 −126 .

Если e равно 255 и f равно нулю,представленное значение равно + ∞ или −∞, в зависимости от того, равно ли s 0 или 1. соответственно.

Если e равно 255 и f не ноль, объект является NaN.

В противном случае представленное значение равно (−1) s • (1 + f / 2 23 ) • 2 e −127 .

...