gpt4 book ai didi

php - 将 IEEE 754 转换为十进制 float

转载 作者:可可西里 更新时间:2023-11-01 12:38:40 24 4
gpt4 key购买 nike

我有一个我认为是单精度或 double (不确定)的 IEEE754,我想在 PHP 上将它转换为十进制。

给定 4 个十六进制值(可能是小端格式,所以基本上颠倒顺序)4A,5B,1B,05 我需要将它转换为十进制值,我知道这会非常接近 4724.50073

我尝试了一些在线转换器,但它们与预期结果相去甚远,所以我显然遗漏了一些东西。

如果我 echo 0x4A; 我得到 74,其他的是 9127 5。不知道从这里把它带到哪里...

最佳答案

要将其转换为 float ,请使用unpack。如果字节顺序不正确,您必须在解包之前自行反转它。 4 个字节(32 位)通常表示它是一个 float ,8 个表示 double 。

$bin = "\x4A\x5B\x1B\x05";
$a = unpack('f', strrev($bin));
echo $a[1]; // 3589825.25

我看不出这是如何直接映射到 4724.50073 的。没有更多的测试数据或制造商手册,这个问题无法完全回答。

推测:从坐标的大小来看,它可能是某种投影(XYZ 或墨卡托投影),然后可以将其转换为 WGS84 或任何您需要的投影。很遗憾,由于您没有同时提供纬度和经度,因此无法进行检查。

关于php - 将 IEEE 754 转换为十进制 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34498021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com