存储在内存中的数字

时间:2015-08-20 09:42:54

标签: python python-2.7 numbers integer

所以我正在阅读Python中的网络,本节将解释有关大端和小端的信息。据我所知,当某些数据大于一个字节时,它们会显示从内存中读取数据的顺序,以便对用户有意义,但这是我不明白的地方。书中说我们可以通过调用十六进制函数来查看数字4253如何存储在内存中:

>>> hex(4253)
'0x109d'

然后它表示十六进制值中的每个数字都是4位,所以2位数字就是一个字节。到目前为止一切都很清楚,值0x109d是2个字节,显示数字4253的二进制表示,即0001000010011101。但是它给出了struct module的pack和unpack方法的一个例子,结果表明值4253是4个字节。这里出现了混乱,为什么值为4个字节? 2个空字节有什么作用?

>>> struct.pack('<i',4253)
'\x9d\x10\x00\x00'

1 个答案:

答案 0 :(得分:1)

明确在documentation of format characters -

中给出
  

“标准大小”列指的是使用标准大小

时打包值的大小(以字节为单位)      

i - int - 整数 - 4 - (3)

在上面4是该格式的标准大小(以字节为单位)。

格式字符串(struct.pack的第一个参数)决定了它需要多少字节。