2015-10-21 1263 views
2

我正在使用Python 2.7.x Stack。并使用sys.maxint为正整数(如果使用错误,请随时纠正我)。有时我还需要初始化一个整数为最小的负整数值。想知道什么是Python 2.7.x Stack中最优雅/正确的方法?Python中的最小负整数

由于提前, 林

+1

小心 - 'sys.maxint + 1'可以正常工作,不会溢出。 Python会给你一个'长'。 – user2357112

回答

3
-sys.maxint - 1 

负界限总是一次性从正的限制,由于整数如何被以二进制表示。

+0

谢谢。为什么需要-1? –

+1

但是请注意,Python对整数值没有限制。参见http://stackoverflow.com/questions/7604966/maximum-and-minimum-values-forints。 – jjmontes

+1

'-1'是因为在通常的[2补](https://en.wikipedia.org/wiki/Two's_complement)表示中,零是正数,所以有一个额外负数的空间。例如有符号的字节范围从-128到127. – jjmontes

5

为了比较(如找出最小值等)我通常使用float('-inf'),这不是一个int,但比任何int小,并可用于与int整数比较。示例 -

>>> float('-inf') 
-inf 

>>> -sys.maxint -1 > float('-inf') 
True 
+0

哦!真棒,我永远不会使用一个狡猾的随机初始值进行比较了。谢谢! – jjmontes