LINUX.ORG.RU

Как перевести дробную часть как int в стандартный float?

 ,


0

1

Есть функция, которая возвращает uint32. Она (по идее) должна возвращать float, но исторически сложилось так, что ее писали, когда float был еще более тормозным. В результате она возвращает дробную часть как uint32.

Пример:

Получил:
0x12345678(16) -> 305419896(10)
Подразумевал:
0x0.12345678(16) -> 0.0711111(10)

Как мне ее значение странслировать в нормальный float? Я подразумеваю, можно ли это сделать не мучаясь с каждым битом типа 1*16^-1+2*16^2+3*16^-3+4*16^-4+5*16^-5+6*16^-6+7*16^-7+8*16^-8.

Выходные значения подразумеваются от 0.0 (0(16) до 1.0 (0.FFFFFFFF(16))

Ответ на: комментарий от waker

тогда еще жизненно необходимо 0xFFFFFFFE в варианты добавить

хотя в оп вот:

1.0 (0.FFFFFFFF(16))

так что, наверное, ты прав

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.