質問

解析する必要があるバイナリ ファイルがあり、Python を使用しています。4バイトを取得して単精度浮動小数点数に変換する方法はありますか?

役に立ちましたか?

解決

>>> 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@'

他のヒント

少し追加します。タプルの代わりに unpack メソッドからの出力として浮動小数点数が必要な場合は、次のように記述します。

>>> [x] = struct.unpack('f', b'\xdb\x0fI@')
>>> x
3.1415927410125732

もっと浮動小数点がある場合は、次のように書いてください

>>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
>>> x
3.1415927410125732
>>> y
1.8719963179592014e-07
>>> 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top