Python如何管理int和long?
问题内容:
有人知道Python如何内部管理int和long类型吗?
- 它会动态选择合适的类型吗?
- 整数的限制是多少?
- 我正在使用Python 2.6,与以前的版本有所不同吗?
我应该如何理解以下代码?
>>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>
更新:
>>> print type(0x7fffffff)
<type 'int'>
>>> print type(0x80000000)
<type 'long'>
问题答案:
int
并long
“统一”了几个版本。在此之前,可以通过数学运算来溢出int。
3.x通过完全消除long并仅具有int来进一步提高了此功能。
- Python 2 :
sys.maxint
包含Python int可以容纳的最大值。- 在64位Python 2.7上,大小为24个字节。用检查
sys.getsizeof()
。
- 在64位Python 2.7上,大小为24个字节。用检查
- Python 3 :
sys.maxsize
包含Python int可以达到的最大字节数。- 这将是32位的千兆字节,以及64位的EB。
- 如此大的int值将等于8的幂
sys.maxsize
。