RT。
如11.369怎样转换为16进制数~~

解决方案 »

  1.   

    可以写两个函数, 完成Double类型到16进制字符串的相互转换:function DoubleToHex(Value: Double): String;
    var
      A: array[0 .. SizeOf(Double) - 1] of Byte;
    begin
      Move(Value, A[0], SizeOf(Double));
      SetLength(Result, SizeOf(Double) * 2);
      BinToHex(PChar(@A[0]), PChar(Result), SizeOf(Double));
    end;function HexToDouble(Hex: String): Double;
    var
      A: array[0 .. SizeOf(Double) - 1] of Byte;
    begin
      HexToBin(PChar(Hex), PChar(@A[0]), SizeOf(Double));
      Move(A[0], Result, SizeOf(Double));
    end;
    调用的例子:var
      S: String;
    begin
      S := DoubleToHex(11.369);
      ShowMessage (S);
      ShowMessage (FloatToStr(HexToDouble(S)));
    end;
      

  2.   

    非常感谢,还想问一下~~转换出来的16进制是低字节在前面还是在后面。
    比如:11.369delphi转换后是6DE73541,6D是高字节还是低字节?
      

  3.   


    在Intel的X86上, 低字节在前面。