I have been trying to decode GPS coordinates (latitude and longitude) which is in HEX format, and the documentation doesn't have a clear explanation, please help me out. I'm adding some examples below.

latitude 0x414F51 = +28.758963 dd(decimal degree)

longitude 0x45429B = +077.627784dd(decimal degree)

screenshot of the documentation

official documentation

1 Answer 1


your screenshot probably contains example data and not real values

first of all both longitude and latitude are 4 bytes as per your documentation

and there is an example of normal packet in your documentation

based on that packets data lat and long are as follows

4E    41 4F 51 53  N   AOQS   

45    42 9B 7D 5C  E   B›}\  

these are normal IEEE float

:\>xxd -s 94  -l 1 foo.bin
000005e: 4e                                       N

:\>xxd -s 95  -l 4 foo.bin
000005f: 414f 5153                                AOQS

:\>xxd -s 99  -l 1 foo.bin
0000063: 45                                       E

:\>xxd -s 100  -l 4 foo.bin
0000064: 429b 7d5c                                B.}\

:\>cdb -c ".formats 414f5153;q" cdb | grep -i float
  Float:   low 12.9574 high 0

:\>cdb -c ".formats 429b7d5c;q" cdb | grep -i float
  Float:   low 77.7448 high 0


reverse geocoding this location is as shown in screen shot

enter image description here

  • Here is hex to floating point converter, gregstoll.com/~gregstoll/floattohex Feb 9, 2019 at 4:26
  • what for ? there are infinite such convertors floating around in fact i have written such a convertor as a windbg extension googit f2h
    – blabb
    Feb 9, 2019 at 6:28

Not the answer you're looking for? Browse other questions tagged or ask your own question.