本文介绍了将64位十六进制转换为在PHP中浮动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to convert a 64 bit hexadecimal number to a float in PHP.

40F82C719999999A

如果我在 http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html 它将转换为:

99015.100000000000

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

Which is the number I'm looking for. But I can't get to this number in PHP. I've tried using various combinations of pack() and unpack() but I'm not anywhere close. :(

推荐答案

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

will return 99015.1

这篇关于将64位十六进制转换为在PHP中浮动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-16 17:08