使用
struct
要解压缩正在脱离连接的4字节浮点。
>>> import struct
>>> patt='!f' # big-endian single-precision float, 4 bytes
>>> _0_125 = chr(62)+chr(0)+chr(0)+chr(0)
>>> struct.unpack(patt,_0_125)
(0.125,)
>>> _13_65 = chr(65)+chr(90)+chr(96)+chr(0)
>>> struct.unpack(patt,_13_65)
(13.6484375,)
>>> _51_79 = chr(66)+chr(79)+chr(42)+chr(128)
>>> struct.unpack(patt,_51_79)
(51.79150390625,)
这将返回一个元组,因为在传递给的bytestring中可能有多个数据项
unpack
.
我不得不使用
chr()
. 如果您已经在
x
然后
struct.unpack(patt,x)
会成功的。
您以字节形式看到的数据似乎与您期望的值无关,因为它是IEEE754格式的。数据是二进制的,字节边界没有意义:
-
第31位:
符号(0=正,1=负)
-
位30至23:
指数,偏差127
-
位22至0:
小部分
f
数字1的。
f
(其中
.
表示二进制点)