怎么把四个字节的16进制的数据转成FLOAT
例如
'A01A0A42';16进制转成35.42

解决方案 »

  1.   

    function HexToInt(hex : STRING) : INTEGER;     //十六进制转十进制函数
    var
      i : INTEGER;
      res: INTEGER;begin
      hex := UpperCase(hex);
      res := 0;
       // B:=Length(hex);
      for i:=1 to Length(hex) do
        begin
            if (hex[i]>='0') and (hex[i]<='9')
            then
                res := res * 16 + Ord(hex[i]) - Ord('0')
            else
                if (hex[i]>='A') and (hex[i]<='F')
                then
                    res := res * 16 + Ord(hex[i]) - Ord('A') + 10
                else
                    begin
                      HexToInt := 0;
                      Exit;
                    end;
        end;
        HexToInt := res;
    end;
      

  2.   

    var s:String;a:Double;i:Integer;
    begin
      s :='$'+trim(Edit1.Text);
      val(s,a,i);
      Label1.Caption :=FloatToStr(a);
    end;