我在使用 Delphi 将十六进制值的字符串表示形式转换为整数值时遇到问题。
例如:
$FC75B6A9D025CB16 当我使用该功能时给我 802829546:
Abs(StrToInt64('$FC75B6A9D025CB16'))
但如果我使用Windows中的计算程序,结果是:18191647110290852630
所以我的问题是:谁是对的?我,还是计算器?
有人已经遇到过这样的问题吗?
In fact 802829546
这里显然是错误的。
Calc 返回一个 64 位无符号值 (18191647110290852630d
).
Delphi Int64 类型使用最高位作为符号:
Int := StrToInt64('$FC75B6A9D025CB16');
Showmessage(IntToStr(Int));
返回值-255096963418698986
哪个是对的
如果您需要使用大于 64 位有符号的值,请查看阿诺的回答在这里.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)