python-2.7 - python 为什么 sys.maxint ==" 7fffffffffffffff"?


>>> import sys


>>> print '{0:64b}'.format(sys.maxint)


 111111111111111111111111111111111111111111111111111111111111111


>>> print '{0:16x}'.format(sys.maxint)


7fffffffffffffff



什么7来自哪里?

这不适合我对 2个补充的理解。

时间:

计算二进制表示中的1数。 他们有 63个。 让我们写 64位,这样我们可以看到前导 0:


0111111111111111111111111111111111111111111111111111111111111111



这是最大的64位 整数: 63位,第64位为0。 如果最左边的位是 1,那么我们就有了 -1 。 噢亲爱的!当符号位为1时,我们得到负数。 那不好。 64 1 的太多了。

以上,以4为一组:


0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111



以十六进制形式:


0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111


7 f f f f f f f f f f f f f f f



...