Пример функции
function ToFloat(register)
local fraction=bit.BitAnd(register,0x7FFFFF); --маскируем 23 бита - получем мантиссу
local exp=bit.BitRshift(register,23); --смещаемся вправо на 23 бита - получаем экспоненту
local exp=bit.BitAnd(exp,0xFF); --маскируем биты экспоненты
local sign=bit.BitFromData(register,31); --выделяем бит знака
local float=2^(exp-127)*(1+fraction/2^23); --вычисляем число
if sign==true then float=float*(-1); end; --проверяем знак
return float;
end
Пример вызова функции.
val=1042284544;
FloatNumber=ToFloat(val);