Python を使用してバイナリ ファイルを読み込もうとしています。ファイルは LSB モードです。struct モジュールをインポートし、次のように unpack を使用します。
f=open(sys.argv[1],'rb')
contents= unpack('<I',f.read(4))[0]
print contents
f.close()
ファイル内のデータは LSB モードで 0XC0000500 であり、実際の値は 0X000500C0 です。したがって、LSB モードの最小サイズはバイト単位であることがわかります。
ただし、おそらくgccまたはマシンのバージョンが原因で、Macマシンを使用しています(確かではありません。sizeofとsys.htmlについてhttp://docs.python.org/library/struct.htmlを読んだだけです。 bitorder)、上記のコードの結果は X0500C000 であるため、LSB モードのサイズは 2 バイトです。
この問題を解決するにはどうすればよいですか?
この質問に答えがあるかどうかに関係なく、私は掘り続けます。何かを得たら更新します。
ps: データ ファイルは 32 ビット マシン用の ELF ファイルです。
pps: 膨大な量のデータを読み取るので、これは読み取りの一般的な問題であるため、手動の方法は私にとって最適ではありません。質問はまだ答えを待っています。
ppps: < は「リトルエンディアン、標準サイズ (16 ビット)」を意味します。