Python整数范围
在Python中,有没有办法获得可以使用的最大整数? 是否有像INT_MAX这样的预定义常量?
Python有任意的精度整数,所以没有真正的固定的最大值。 你只受可用内存的限制。
在Python 2中,有两种types, int
和long
。 int
s使用Ctypes,而long
s是任意的精度。 你可以使用sys.maxint
来find最大的int
。 但是int
会自动提升为long
,所以你通常不需要担心:
sys.maxint + 1
工作正常,并返回一个long
。
sys.maxint
甚至不存在于Python 3中,因为int
和long
被统一为一个任意的精度int
types。
import re import sys import platform import struct formats = { "int":{"p_type":"integer", "format":"i"}, "float":{"p_type":"float", "format":"f"}, "double":{"p_type":"float", "format":"d"} } sys_bit = int(re.findall(r"\d+", platform.architecture()[0])[0])/8 for k,v in formats.iteritems(): print "max {0} {1}".format(k, 2**struct.Struct(v["format"]).size*sys_bit-1)-1) print "min {0} {1}".format(k, -2**struct.Struct(v["format"]).size*sys_bit-1))