一个数据类型转换的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 lanm
  • 开始时间 开始时间
L

lanm

Unregistered / Unconfirmed
GUEST, unregistred user!
dat:array[0..3] of byte;

dat[0]:=$EC;dat[1]:=$6A;dat[2]:=$66;dat[3]:=$43;
如何将这个数据的值存到一个浮点数中,我想应该是single类型吧,single类型正好四位,
需要把single类型的值先定义成指针类型吗?
我需要得到的值是230.4(浮点数被赋dat的值后,得到的结果是230.4).
谢谢各位!!!
 
dat:array[0..3] of byte;

dat[0]:=$EC;dat[1]:=$6A;dat[2]:=$66;dat[3]:=$43;
如何将这个数据的值存到一个浮点数中,我想应该是single类型吧,single类型正好四位,
需要把single类型的值先定义成指针类型吗?
我需要得到的值是230.4(浮点数被赋dat的值后,得到的结果是230.4).
谢谢各位!!!
 
procedure TForm1.Edit1Click(Sender: TObject);
var
dat:array[0..3] of Byte;
x:PSingle;
begin
dat[0] :=$EC;dat[1]:=$6A;dat[2]:=$66;dat[3]:=$43;
x :=@dat[0];
Edit1.Text :=FloatToStr(x^);
end;

结果:230.417663574219
 
很简单啦,答案是230.417663574219,请楼主加分,谢谢

procedure TForm1.FormCreate(Sender: TObject);
var
dat:array[0..3] of byte;
a:single;
begin
dat[0]:=$EC;
dat[1]:=$6A;
dat[2]:=$66;
dat[3]:=$43;
copymemory(@a,@dat,4);
MessageDlg(floattostr(a), mtWarning, [mbOK], 0)
end;

copymemory是我经常用的,有时候修改一些数据,也不知道怎么写才好,干脆用copymemory来直接修改内存,还有一个是movememory
 
多谢两位,分数平均分配 :)
 
后退
顶部