-1

嗨,我需要将 GPS 跟踪器的响应值转换为纬度和经度。响应值是十六进制格式,文档说纬度和经度将是measured in degrees with a 1x10^-7 degree lsb, signed 2’s complement。例如:

Hexa      Binary                              decimal        longitude
B9DCF6B1  10111001110111001111011010110001    3118266033    -117.6701263

谁能帮我用php解决这个问题。

4

1 回答 1

3

将此答案移植到 PHP:

function convert($hex)
{
    $dec = hexdec($hex);
    return ($dec < 0x7fffffff) ? $dec * 0.0000001
                               : 0 - (0xffffffff - $dec) * 0.0000001;
}

测试:

var_dump(convert('B9DCF6B1')); // float(-117.6701262)
于 2013-11-14T10:55:45.920 回答