在 PHP 中解压签名的 int32 little-endian
Unpack signed int32 little-endian in PHP
我有一个要解析的二进制文件。文件的一小部分有一组坐标(纬度和经度)。一个小例子如下:
$data = "64DA7300 0CD5DFFF";
我正在尝试查看整数,但我还没有运气。
$header = unpack("ilatitud/ilongitude", $data);
print_r($header);
我知道正确的数字应该是:(7592548, -2108148)
,但结果是 1094988854, 808465207
。
有什么想法吗?谢谢。
$data = "64DA7300 0CD5DFFF";
您的数据不是二进制的,而是十六进制编码的 ascii。首先将其设为二进制:
$data = hex2bin(str_replace(" ", "", $data));
那么你的解压就可以了。
我有一个要解析的二进制文件。文件的一小部分有一组坐标(纬度和经度)。一个小例子如下:
$data = "64DA7300 0CD5DFFF";
我正在尝试查看整数,但我还没有运气。
$header = unpack("ilatitud/ilongitude", $data);
print_r($header);
我知道正确的数字应该是:(7592548, -2108148)
,但结果是 1094988854, 808465207
。
有什么想法吗?谢谢。
$data = "64DA7300 0CD5DFFF";
您的数据不是二进制的,而是十六进制编码的 ascii。首先将其设为二进制:
$data = hex2bin(str_replace(" ", "", $data));
那么你的解压就可以了。