我正在使用二进制模式在 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 中是否有本地 wat 来执行此操作?intVar=(int*)someBasePointer
作为C 中的类型转换
在标记为已回答后添加:
有没有办法为奇数位结构做到这一点?就像CHS一样。C(柱面)是 10 位,一个字节 8 位,另一个字节 2 位。我目前的方法是
def getCHS(bytes):
c=bytes[1]&3<<8|bytes[2]
h=bytes[0]
s=bytes[1]&63
return {'c':c,'s':s,'h':h}