spcomm控件接受到一组数据,
rbuf,sbuf:array[1..20] of byte;
move(buffer^,pchar(@rbuf)^,bufferlength);
举例:
rbuf[1]='EF';
rbuf[2]='3A';
rbuf[3]='3D';
rbuf[4]='23';
......
那么我如何将他们转化为double类型的数据???

解决方案 »

  1.   

    16进制转ascii码?
    chr(strtoint('$' + rbuf[1]))
      

  2.   

    ASingle : single;
    Move(rbuf[1],ASingle,4);
      

  3.   

    发送是double类型的数据,也就是这4个是一个数据,我怎么把它们转化为double;
    rbuf[1]='EF';
    rbuf[2]='3A';
    rbuf[3]='3D';
    rbuf[4]='23';
    明白我的意思没有???????
      

  4.   

    var
      i:integer;
      s:string;
      d:double;s:='';
    for i:=0 to length(rbuff)-1 do
      s:=s+char(rbuff[i]);
    showmessage(s);
    d:=strtofloat(s);
      

  5.   

    var
      d:double;//8 个字节
      buf:array[1..8] of byte absolute d;
    begin  
     buf[1]=$EF;
     buf[2]=$3A;
     buf[3]=$3D;
     buf[4]=$23; //同理showmessage(formatfloat('%0.00f',d);
    end;