Как перевести дробную часть как int в стандартный float?
Есть функция, которая возвращает 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))