读书人

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

发布时间: 2012-12-17 09:31:40 作者: rapoo

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测试都不会,哎...

读书人网 >.NET

热点推荐