将64位十六进制转换为在PHP中浮动

Syn*_*ror 2 php hex ieee-754

我正在尝试将64位十六进制数字转换为PHP中的浮点数。

40F82C719999999A
Run Code Online (Sandbox Code Playgroud)

如果在http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html的IEEE-754浮点转换页面中运行该命令,它将转换为:

99015.100000000000
Run Code Online (Sandbox Code Playgroud)

我要寻找的是哪个号码。但是我无法在PHP中获得此数字。我试过使用pack()和unpack()的各种组合,但是我离哪里都不远。:(

Via*_*aev 5

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;
Run Code Online (Sandbox Code Playgroud)

将返回99015.1