Python中最小的负整数[重复]
Posted
技术标签:
【中文标题】Python中最小的负整数[重复]【英文标题】:smallest negative int in Python [duplicate] 【发布时间】:2016-01-19 21:06:37 【问题描述】:我正在使用 Python 2.7.x 堆栈。并将 sys.maxint 用于正最大整数(如果使用错误,请随时纠正我)。有时我还需要将一个整数初始化为最小的负整数值。想知道 Python 2.7.x 堆栈中最优雅/正确的方法是什么?
提前致谢, 林
【问题讨论】:
当心 -sys.maxint + 1
可以正常工作,不会溢出。 Python 只会给你一个long
。
【参考方案1】:
对于比较(例如找出最小值等),我通常使用 float('-inf')
,这不是 int,但比任何 int 都小,可用于与 int 进行比较。示例 -
>>> float('-inf')
-inf
>>> -sys.maxint -1 > float('-inf')
True
【讨论】:
哦!太棒了,我再也不会使用狡猾的随机初始值进行比较了。谢谢!【参考方案2】:-sys.maxint - 1
由于整数在二进制中的表示方式,负限制总是与正限制分开。
【讨论】:
谢谢。为什么需要-1? 请注意,Python 对整数值没有限制。请参阅***.com/questions/7604966/…。-1
是因为在通常的2's complement 表示中,零是正数,所以有一个额外的负数的空间。例如,有符号字节范围从 -128 到 127。
@jjmontes:这是……误导,取决于您如何解释“整数”。至少在 Python 2 中,它对整数值没有限制,但对 int
确实有限制(在 maxint
之后,它们是 long
)。以上是关于Python中最小的负整数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
JS leetcode 存在重复元素 II 题解分析,记一次震惊的负向优化