问题:长整数的最大值
如何将长整数的最大值分配给变量,例如类似于C ++的LONG_MAX
。
回答 0
长整数:
没有明确定义的限制。可用地址空间的数量构成了实际限制。
(摘自本网站)。请参阅“ 数字类型 ”文档,在该文档中您会看到Long integers have unlimited precision
。在Python 2中,当整数超出限制时,整数将自动切换为long:
>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>
对于整数,我们有
maxint和maxsize:
int的最大值可以在Python 2.x中使用找到sys.maxint
。它已在Python 3中删除,但sys.maxsize
通常可以代替使用。从变更日志:
sys.maxint常量已删除,因为整数值不再受限制。但是,sys.maxsize可以用作大于任何实际列表或字符串索引的整数。它符合实现的“自然”整数大小,并且通常与同一平台上的先前发行版中的sys.maxint相同(假定具有相同的生成选项)。
并且,对于任何对差异感兴趣的人(Python 2.x):
sys.maxint Python的常规整数类型支持的最大正整数。这至少是2 ** 31-1。最大的负整数是-maxint-1-不对称性是由于使用2的补码二进制算法引起的。
sys.maxsize平台的Py_ssize_t类型支持的最大正整数,因此列表,字符串,字典和许多其他容器可以具有的最大大小。
为了完整起见,这是Python 3版本:
sys.maxsize 一个整数,赋予最大值Py_ssize_t类型的变量可以采用的值。在32位平台上通常为2 ^ 31-1,在64位平台上通常为2 ^ 63-1。
浮动:
有float("inf")
和float("-inf")
。可以将它们与其他数字类型进行比较:
>>> import sys
>>> float("inf") > sys.maxsize
True
回答 1
Python long
可以任意大。如果您需要一个大于任何其他值的值,则可以使用float('inf')
,因为Python 可以轻松比较不同类型的数字值。同样,对于小于任何其他值的值,您可以使用float('-inf')
。
回答 2
标题问题的直接答案:
整数的大小不受限制,在Python中没有最大值。
回答哪个可以解决基本用例:
根据您对要做的事情的评论,您目前正在考虑以下方面的想法:
minval = MAXINT;
for (i = 1; i < num_elems; i++)
if a[i] < a[i-1]
minval = a[i];
那不是在Python中思考的方式。到Python更好的翻译(但仍然不是最好的)是
minval = a[0] # Just use the first value
for i in range(1, len(a)):
minval = min(a[i], a[i - 1])
请注意,上面根本没有使用MAXINT。该解决方案的这一部分适用于任何编程语言:您无需仅在集合中找到最小值就知道最大的可能值。
但是无论如何,您真正在Python中所做的只是
minval = min(a)
也就是说,您根本不需要编写循环。内置min()
函数获取整个集合的最小值。
回答 3
long
Python 2.x中的type使用任意精度算法,没有最大可能值之类的东西。它受可用内存的限制。对于无法由本机整数表示的值,Python 3.x没有特殊的类型-一切都已准备就绪,int
并且转换在后台进行。
回答 4
与C / C ++不同,Python中的Long具有无限的精度。 有关更多信息,请参见python中的数字类型部分。要确定整数的最大值,您可以参考sys.maxint
。您可以从sys文档中获取更多详细信息。
回答 5
您可以使用:float的最大值为
float('inf')
否定的
float('-inf')
回答 6
在python3中,您可以将浮点值发送到int函数中,以整数表示形式获取该值1.7976931348623157e + 308。
import sys
int(sys.float_info.max)