1

モジュール bitstring を使用して、24 バイトの境界ファイルを解凍しています。入力ファイルを制御できません。モジュールのデフォルトの解釈は明らかにビッグエンディアンです。これは、int や float などのデータ型をアンパックするときに簡単に修正できますが、一部のデータは 16 進数値として表現したいものです。アンパックの 16 進値を使用すると、正しくないバイト順が表示されます。これに対する修正はありますか?入力例:D806望ましい出力:06D8

from bitstring import ConstBitStream
fp = ConstBitStream(filename="testfile.bin")
firstChunk = fp.read(2*8)
data=firstChunk.unpack('hex:16')
print(data)
4

1 に答える 1

0

リトルエンディアンの整数解釈では、通常の Python フォーマットを使用できます。

ではなく、両方を一緒readunpack行うこともできます。

print('{:0>4X}'.format(fp.read('uintle:16')))

これは、ストリームから次の 16 ビットを読み取り、それを符号なしリトルエンディアン整数として解釈し、16 進数の 4 文字としてフォーマットし、右揃えでゼロを埋め込みます。

于 2016-08-05T11:11:47.987 に答える