Python 3中整数类型没有固定大小限制,理论上可以无限大,实际受内存限制。
整数范围
- Python 3特性:Python 3中
int
类型无限制,可增长至内存允许的最大值。3
- 内存限制:实际可用的整数大小取决于可用内存量。3
- Python 2差异:Python 2中整数超出限制时自动转换为长整型,Python 3中
int
和long
合并,无此问题。1
- 系统位数影响:32位系统整数范围通常为-2^31到2^31-1,64位系统则更大。4
- sys.maxsize参考:可通过
sys.maxsize
获取当前平台最大整数值,但不是绝对上限。6
底层实现
- 数字存储:
_PyLongValue
结构体的ob_digit
数组动态存储数字,无固定长度。2
- 位数灵活性:
lv_tag
存储数字个数和符号,Python int长度由其决定,位数根据操作系统不同而变化。2