読んでいるバイナリファイルがあり、2バイトの値が「逆」のバイト順序(リトルエンディアン?)で格納されています。
1D 00 13 00 27 00 3B 00 45 00 31 00 4F
これらの値を作成した元のプログラムは、それらをshortとして内部的に保存します。これらの値は、29、19、39、59、69、49、79に対応している必要があります。Python2.6.5を使用してこれらの値を読み取ろうとしています(ただし、これはおそらく2.3や2.4などのはるかに古いシステムで実行されます) 。
使ってみました
val1, val2, val3, val4, val5, val6, val7 = struct.unpack("1h 1h 1h 1h 1h 1h 1h", data)
そしてもちろん、値はすべて間違っています。
7427
4864
9984
15104
17664
12544
20224
構造体のドキュメントを見た後、私は次のようなものを使用できると思いました
val1, ... = struct.unpack("!h !h ...
しかし、テストしたとき、私は
struct.error: bad char in struct format
これらの値を正しいバイト順序で解凍するにはどうすればよいですか?2バイトを別々に読んでから、Pythonコードでそれらを再アセンブルするのに行き詰まっていますか?