我正在尝试将 64 位十六进制数转换为 PHP 中的浮点数。
40F82C719999999A
如果我在 IEEE-754 浮点转换页面中运行它http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html它转换为:
99015.100000000000
这就是我要找的号码。但我无法在 PHP 中得到这个数字。我尝试过使用 pack() 和 unpack() 的各种组合,但我还没有接近。 :(
function hex2float($strHex) {
$hex = sscanf($strHex, "%02x%02x%02x%02x%02x%02x%02x%02x");
$hex = array_reverse($hex);
$bin = implode('', array_map('chr', $hex));
$array = unpack("dnum", $bin);
return $array['num'];
}
$float = hex2float('40F82C719999999A');
echo $float;
将返回 99015.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)