在python中解开int long

  • 本文关键字:int long python python
  • 更新时间 :
  • 英文 :


我在尝试阅读和解开int32 int64时必须遵循奇怪的问题。2.7.9

file = open('my_file.bin','rb')
s = file.read(4 + 8)
struct.unpack('IQ',s)

我收到以下错误:打开包装需要长度为16

的字符串参数

为什么?i = 4 q = 8 iq = 12

btw以下工作:

s = file.read(4)
struct.unpack('I',s)
s = file.read(8)
struct.unpack('Q',s)

尚未自己使用,但是根据文档,unvack()使用结构的本机填充,就像计算机上的C编译器一样:显然,您正在64号上运行位机器。如果您知道要包装的结构并遵循本机字节排序,则将格式字符串IQ前缀为equals =IQ

背景:CPU可以比包装数据更有效地获取在单词边界上对齐的数据,这些数据需要两个提取周期(与CPU速度相比,DRAM访问速度很慢)。现在64位很普遍(带有8个字节单词),这有助于解释为什么这些天我们需要更多的记忆……

它是对齐相关的问题。您可以签到文档。

最新更新