代码之家  ›  专栏  ›  技术社区  ›  user143

在PHP中解包签名int32 little endian

  •  2
  • user143  · 技术社区  · 8 年前

    我正试图解析一个二进制文件。文件的一小部分有一组坐标(纬度和经度)。一个小例子如下:

    $data = "64DA7300 0CD5DFFF";
    

    $header = unpack("ilatitud/ilongitude", $data);
    print_r($header);
    

    我知道正确的数字应该是: (7592548, -2108148) 然而,结果是 1094988854, 808465207

    有什么想法吗?谢谢

    1 回复  |  直到 8 年前
        1
  •  3
  •   tkausl    8 年前
    $data = "64DA7300 0CD5DFFF";
    

    您的数据不是二进制的,而是十六进制编码的ascii。首先将其设置为二进制:

    $data = hex2bin(str_replace(" ", "", $data));
    

    Example

    推荐文章