Python如何为大整数分配内存?
一个int类型的大小28 bytes和随着我不断增加的值int,大小以增量为单位增加4 bytes.
为什么28 bytes最初的价值低至何1?
为什么增量4 bytes?
PS:我在x86_64(64位机器)上运行Python 3.5.2.关于(3.0+)解释器如何处理如此庞大的数字的任何指针/资源/ PEP都是我正在寻找的.
代码说明尺寸:
>>> a=1
>>> print(a.__sizeof__())
28
>>> a=1024
>>> print(a.__sizeof__())
28
>>> a=1024*1024*1024
>>> print(a.__sizeof__())
32
>>> a=1024*1024*1024*1024
>>> print(a.__sizeof__())
32
>>> a=1024*1024*1024*1024*1024*1024
>>> a
1152921504606846976
>>> print(a.__sizeof__())
36
Run Code Online (Sandbox Code Playgroud) 在64位系统上,Python中的整数需要24个字节.这是例如C对于64位整数所需的内存的3倍.现在,我知道这是因为Python整数是对象.但是用于什么额外的内存?我有猜测,但肯定知道这会很好.
有汇编指令ADC.我发现这意味着"随身携带".但我不知道这意味着什么.或者如何用C++编写这个指令.我知道它不一样ADD.所以做一个简单的求和是不正确的.
信息:
在Windows中编译.我正在使用32位Windows安装.我的处理器是Intel的Core 2 Duo.