浮点数:长度为4字节。其中尾数高位始终为1,位的分布如下:
 1为符号位
 8为指数位
 23位尾数
符号位是最高位,尾数位最低23位,按字节保存如下:
地址: +0 +1 +2 +3
内容: MMMM MMMM MMMM MMMM EMMM MMMM SEEE EEEE
其中:S:符号位,0=正,1=负
E:指数(在两个字节中),偏移为127。
M:23位尾数,最高位为“1”。
例如:浮点数-12.5的十六进制为0XC1480000,它按下面方式存储:
地址: +0 +1 +2 +3
内容: 0X00 0X00 0X48 0XC1
请问:如何转换,互换
 1为符号位
 8为指数位
 23位尾数
符号位是最高位,尾数位最低23位,按字节保存如下:
地址: +0 +1 +2 +3
内容: MMMM MMMM MMMM MMMM EMMM MMMM SEEE EEEE
其中:S:符号位,0=正,1=负
E:指数(在两个字节中),偏移为127。
M:23位尾数,最高位为“1”。
例如:浮点数-12.5的十六进制为0XC1480000,它按下面方式存储:
地址: +0 +1 +2 +3
内容: 0X00 0X00 0X48 0XC1
请问:如何转换,互换
TSingle = Record
b1, b2, b3, b4: Byte;
end;
showMessage('0X' + Format('%2X', [TSingle(-12.5).b4])+ Format('%2X', [TSingle(-12.5).b3])+
Format('%2X', [TSingle(-12.5).b2]) + Format('%2X', [TSingle(-12.5).b1]));
r: Real;
function i_r(i:Integer): Real;
begin
result := StrToFloat(IntToStr(i));
end;function i_r(i:Real): Integer;
begin
result := StrToInt(FloatToStr(i));
end;加上例外处理,得了。
b:byte;
begin
b:=TSingle(-12.5).b4;
end;
都运行不了
b:byte;
f: single;
begin
f:= -12.5;
b:=TSingle(f).b4;
end;
str:string;
D:integer;
F:real;
begin
str:=formatFloat('00000000',F);
D:=strtoint(str);
end;