2013-03-16 151 views
0

我有一个以十六进制形式存储十进制数的嵌入式设备,但我遇到了转换问题。将十进制数转换为十六进制

下面是一些如何存储小数值的例子。

1 = 80 3f 
1.1 = cd cc 8c 3f 
1.2 = 9a 99 99 3f 
1.3 = 66 66 a6 3f 
1.4 = 33 33 b3 3f 
1.5 = c0 3f 
1.6 = cd cc cc 3f 
1.7 = 9a 99 d9 3f 
1.8 = 66 66 e6 3f 
1.9 = 33 33 f3 3f 
2 = 40 
7.3 = 9a 99 e9 40 

有没有人看到过程可能是什么来转换这些数字?

回答

1

他们大端漂浮

在蟒蛇,他们可以与格式字符串解压!˚F

例如

>>> a="\x40\x00\x00\x00" 
>>> import struct 
>>> struct.unpack("!f",a) 
>>> (2.0,) 
+0

确定这我指出了正确的方向。使用PHP,我可以使用这样做:''echo implode(“”,unpack(“f *”,“\ xcd \ xcc \ xcc \ x3f”));'output = 1.6000000238419 – 2013-03-16 20:27:49

相关问题