在Python 2中,类型将根据值的大小自动设置。下面可以找到最大值的指南。
默认Int在Python 2中的最大值为65535,超过这个值将是一个长整型。
例如:
>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>
在Python 3中,long数据类型已被移除,所有整数值都由Int类处理。 Int的默认大小取决于您的CPU架构。
例如:
- 在32位系统中,默认整数类型为'Int32'
- 在64位系统中,默认整数类型为'Int64'
每种类型的最小/最大值如下:
- Int8:[-128,127]
- Int16:[-32768,32767]
- Int32:[-2147483648,2147483647]
- Int64:[-9223372036854775808,9223372036854775807]
- Int128:[-170141183460469231731687303715884105728,170141183460469231731687303715884105727]
- UInt8:[0,255]
- UInt16:[0,65535]
- UInt32:[0,4294967295]
- UInt64:[0,18446744073709551615]
- UInt128:[0,340282366920938463463374607431768211455]
如果Int的大小超过上述限制,Python将自动更改其类型并分配更多内存以处理此增加的最小/最大值。在Python 2中,它会转换为“长”(long),但现在只会转换为下一个Int大小。
例如:如果您正在使用32位操作系统,则默认情况下Int的最大值为2147483647。如果分配了2147483648或更多的值,则类型将更改为Int64。
有不同的方法来检查int的大小和内存分配。
注意:在Python 3中,使用内置的type()方法将始终返回,无论您使用什么大小的Int。
realloc
重新分配即可。但我不太确定,所以我会把答案留给其他人。 - zneakvar = 666L
强制 Python 使用长变量。 - qbaint
是C语言中的long
类型(默认为带符号的)...请参见<CPython 2.X source>/Include/intobject.h
:typedef struct { PyObject_HEAD long ob_ival; } PyIntObject;无论如何,在Python 2.x中,int
类型允许负数;C语言中的unsigned
类型无法处理负数。 - John Machin