如何将4个BYTE合在一起转换成一个浮点数?(100分)

  • 主题发起人 主题发起人 shiran
  • 开始时间 开始时间
S

shiran

Unregistered / Unconfirmed
GUEST, unregistred user!
我如何可以将65,63,30,184这样一个BYTE的数组何在一起转换成一个浮点数?
 
小数位?
 
只能转化为定点实数,除非知道哪几位是阶码.
 
var
str:string;
Num:array[1..4] of byte;
realNum:reeal;
.....

Num[1]:=65;
...
str:='';
for i:=1 to 4 do
str:=str+IntToStr(Num);
realNum:=StrToFloat(str);
 
先两两转成WORD再用API的宏(不知delphi有否)
MAKELONG(
WORD wLow,
WORD wHigh
);
强制转成real,试试吧。
 
a:array[0..4]of byte;
b:flaot;
move(a,b,4);
 
var
a: array[1..4] of Byte;
b: single absolute a;
begin
a[1]:=65;
a[2]:=63;
a[3]:=30;
a[4]:=184;
ShowMessage(FloatToStr(b))
end;
 
var
bb: array[0..3] of Byte = (65,63,30,184);
ff: real;
i: Integer;

ff := bb[0];
for i := 1 to 3 do
begin
ff := ff shl 8;
ff := ff + bb
end;

ShowMessage(FloatToStr(ff));
 
多人接受答案了。
 
后退
顶部