如题:比如:把Hex 40454CCCCCCCCCCD 转换成 42.6 请大家给我一个函数,谢谢了!

解决方案 »

  1.   

    function HextoFloat(s:string):real;
    var b,temp:string;
        e:integer;
        f:real;
    begin
      b:=HextoBinary(s);
      temp := copy(b,2,8);
      e:=BintoInt(temp)-127;
      temp := copy(b,10,23);
      f := 1+floatBintoInt(temp);
      if(copy(b,1,1)='0')then
        result := power(2,e)*f
      else
        result :=-power(2,e)*f;
    end;
      

  2.   


    function HexToFloat(s: string): Double;
    var
      b, b1: array[0..8] of char;
      i: Integer;
    begin
      HexToBin(PChar(s), b, 8);
      for i := 0 to 7 do
        b1[7 - i] := b[i];
      Move(b1, Result, 8);
    end;var
      v: Double;
    begin
      v := HexToFloat('40454CCCCCCCCCCD');
      ShowMessage(FloatToStr(v));
    end;