为什么对象地址总是8个十六进制数字?

时间:2013-08-25 21:25:27

标签: python

示例:

0xb6f99cec

0xb6f99d2c

0xb6f99d6c

0xb6f99dac

这是一个设计决定,它是一个内存问题,它是否使事情更容易,为什么8而不是4或12或16?

2 个答案:

答案 0 :(得分:5)

内存 - 你有32位系统。 在64位系统上,地址有16个(或更少,如我所见;-))十六进制数字。像这样:

str(object())
Out[1]: '<object object at 0x7fe72a054360>'

答案 1 :(得分:4)

每个十六进制数字携带4位信息。你有八个十六进制数字。因此,该号码携带32位信息。只是地址适合32位。如果您使用的是32位Python,那么情况总是如此;如果您使用的是64位Python,则可能是地址刚刚发生以使所有高位为零并最终适合32位。