function FloatIntToFloat(n:Integer):Double;
var
Sign:Integer; //s
Exponent:Integer;//e
Mantissa:Double; //x
begin
if (n and $80000000)=0 then
Sign:=1
else
Sign:=-1;
Exponent:=(n and $7FFFFFFF) shr 23;
if Exponent>127 then
Exponent:=128-Exponent;
Mantissa:=(n and $007FFFFF)/Power(2,23);
Result:=Sign*Mantissa*Power(2,Exponent);
end;
function TForm1.FloatIntToFloat(n:Integer):Double;
var
Sign:Integer; //s
Exponent:Integer;//e
Mantissa:Double; //x
begin
if (n and $80000000)=0 then
Sign:=1
else
Sign:=-1;
Exponent:=(n and $7FFFFFFF) shr 23;
if Exponent>127 then
Exponent :=Exponent-127;//修改后
//Exponent:=128-Exponent;//修改前
Mantissa:=(n and $007FFFFF)/Power(2,23);
Result:=Sign*(1+Mantissa)*Power(2,Exponent);//修改后
Result:=Sign*Mantissa*Power(2,Exponent); //修改前