バイナリモードを使用してPythonでファイル(ディスクイメージと/ dev / sdaなど)を読み取っています。私は最初のセクター(512バイト)を読んでいて、ディスク情報を印刷しようとしています(参照:ウィキペディアの記事)。
パーティション内の最初の絶対セクターの32ビットLBAのようなものを解釈するために、私は次のようなことをしています-
def int32(bytes):
return int(bytes[3]<<24|bytes[2]<<16|bytes[1]<<8|bytes[0])
def int16(bytes):
return int(bytes[1]<<8|bytes[0])
print('LBA:',int32(partitionEntry[8:12]))
Pythonでこれを行うためのネイティブワットはありますか?intVar=(int*)someBasePointer
Cでの型キャストとして
回答済みとしてマークした後に追加:
奇数ビット構造に対してこれを行う方法はありますか?CHSのように。C(シリンダー)は、一方のバイトから8ビット、もう一方のバイトから2ビットの10ビットです。これに対する私の現在のアプローチは
def getCHS(bytes):
c=bytes[1]&3<<8|bytes[2]
h=bytes[0]
s=bytes[1]&63
return {'c':c,'s':s,'h':h}