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'>


海绵宝宝撒
浏览 818回答 3
3回答

幕布斯6054654

在我的机器上:>>> 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避免任何溢出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python