Cri*_*ian 57 python floating-point
我有一个二进制文件,我必须解析,我正在使用Python.有没有办法获取4个字节并将其转换为单精度浮点数?
tzo*_*zot 83
>>> import struct
>>> struct.pack('f', 3.141592654)
b'\xdb\x0fI@'
>>> struct.unpack('f', b'\xdb\x0fI@')
(3.1415927410125732,)
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'
Run Code Online (Sandbox Code Playgroud)
NDM*_*NDM 12
只是一点点补充,如果你想要一个浮点数作为解包方法的输出而不是元组,只需写
>>> [x] = struct.unpack('f', b'\xdb\x0fI@')
>>> x
3.1415927410125732
Run Code Online (Sandbox Code Playgroud)
如果你有更多的浮点数,那么就写
>>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
>>> x
3.1415927410125732
>>> y
1.8719963179592014e-07
>>>
Run Code Online (Sandbox Code Playgroud)