【发布时间】:2016-03-08 03:18:58
【问题描述】:
我正在尝试将 64 位十六进制数转换为 PHP 中的浮点数。
40F82C719999999A
如果我在http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html 的 IEEE-754 浮点转换页面中运行它,它会转换为:
99015.100000000000
这是我要找的号码。但我无法在 PHP 中得到这个数字。我尝试过使用 pack() 和 unpack() 的各种组合,但我离得很近。 :(
【问题讨论】:
-
您是否要获得
float或double表示?换句话说,您运行的是 32 位或 64 位版本的 PHP 吗? -
你能提供你正在使用的代码吗?
-
@flosculus 如果 PHP_INT_SIZE 是可信的,我正在运行 64 位 PHP。
-
@James 代码我试过了:
$binarydata64 = pack('H*','40F82C719999999A'); $float64 = unpack("d", $binarydata64);