有人知道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'>
3 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
在我的机器上:
>>> print type(1<<30)
<type 'int'>
>>> print type(1<<31)
<type 'long'>
>>> print type(0x7FFFFFFF)
<type 'int'>
>>> print type(0x7FFFFFFF+1)
<type 'long'>
Python使用整数(32位有符号整数,我不知道它们是否是C整数)适合适合32位的值,但是对于任何东西,它都会自动切换为长整数(任意大的位数,即bignums)更大。我猜想这将加快速度以实现较小的值,同时通过无缝过渡到bignum避免任何溢出。
添加回答
举报
0/150
提交
取消