我正在连接到一个api,它返回我需要用php转换为十进制格式的二进制字符串数据。数据以“66 50 235 133”的四个部分块形式出现,并且应该转换为50.00左右的某个值(不确定十进制值应该是多少,但应该接近50)。
所以,我需要将二进制字符串“66 50 235 133”转换为50左右的十进制值。
我已经在php.net上阅读了包和解包函数页面,但我不确定这是否是正确使用的函数以及使用哪种格式(有符号/无符号,字节序等)。感谢您提供的任何帮助或任何帮助指明我正确的方向!
答案 0 :(得分:1)
可能会:
$input = '66 50 235 133';
$value = unpack('g', implode('', array_map('chr', explode(' ', $input))));
// outputs -2.2117755600046E-35
或者:
$input = '66 50 235 133';
$value = unpack('G', implode('', array_map('chr', explode(' ', $input))));
// outputs 44.729999542236
取决于Endianness。
如果您认为这个数字接近50.00,我怀疑它是后者。