为什么Python的hash()会在这两个接近的数字之间产生冲突?

时间:2017-02-18 21:27:51

标签: python hash

为什么Python的原生hash()会为-1-2生成冲突?

>>>> hash(-1)
-2
>>>> hash(-2)
-2

我的理解是,Python hash只会输出所输入数字的确切值 - 这似乎可以保持2^60-2^60

>>>> hash(2**8)
256
>>>> hash(-2**8)
-256
>>> hash(2**60)
1152921504606846976
>>> hash(-2**60)
-1152921504606846976

在这个例子中-1有什么特别之处?

0 个答案:

没有答案