16进制的双精度浮点数的转换有关问题

16进制的双精度浮点数的转换问题
16进制字符串为:405C7107AD9735B3,
将该16进制表示的浮点数转换成10进制数为:113.766093633332,
求转换程序,
该程序最好和C#中的BitConverter.ToDouble()具有相同效果,
谢谢
------最佳解决方案--------------------
var
  S : String;
  D : Double;
begin
  S := '405C7107AD9735B3';
  //一行就搞定了
  PInt64(@D)^ := StrToInt64('$' + S);

  ShowMessage(FloatToStr(D));
end;

------其他解决方案--------------------
Int64是整数 我要的结果是实数
------其他解决方案--------------------
你可以试一下不就知道了,给了一个ShowMessage显示结果的呀
------其他解决方案--------------------
我是新手,在delphi7的环境下,怎么测试?new一个form吗?
------其他解决方案--------------------
我new了一个form,之后拖了一个button,在按钮响应程序里拷贝了你的代码,但是ctrl+F9执行的时候,弹出来这样的错误:could not find program,'…\Bin\IpAccessServer.exe'
什么意思?
------其他解决方案--------------------
啥??你delphi没装完整吧。。
------其他解决方案--------------------
16进制浮点为什么没有小数点?
------其他解决方案--------------------
引用:
16进制浮点为什么没有小数点?

他那个是浮点数当做整数,然后用十六进制字符串表示。
------其他解决方案--------------------
procedure TForm1.btn1Click(Sender: TObject);
var
  S : String;
  D : Double;
begin
  S := '405C7107AD9735B3';
  //一行就搞定了
  PInt64(@D)^ := StrToInt64('$' + S);

  ShowMessage(FloatToStr(D));
end;


------其他解决方案--------------------
ShowMessage测试都不会,哎...