gpt4 book ai didi

python - 为什么 Python 的 hash() 值的长度不同?

转载 作者:行者123 更新时间:2023-11-30 23:15:53 25 4
gpt4 key购买 nike

我想屏蔽掉 Python 哈希值的一些位,当我检查不同哈希值的长度时,我感到很惊讶。

>>> import sys
>>> sys.getsizeof(hash(42))
14
>>> sys.getsizeof(hash("Hello World"))
16
>>> sys.getsizeof(hash("Lorem ipsum dolor sit amet, consectetur adipisicing elit"))
18

拥有返回固定大小哈希值的哈希函数将使在位级别上使用它们变得更容易。长度可变有原因吗?有保证的最小长度吗?

最佳答案

>>> sys.getsizeof(2**10)
14
>>> sys.getsizeof(2**20)
16
>>> sys.getsizeof(2**30)
18

hash 的返回值仅限于一些少量的位(可能是 64),但是 int 大小的粒度小于此,因此根据确切的哈希值,sizeof 可能会有所不同。

正如评论已经指出的那样,这对于位摆弄来说没有任何意义。出于按位运算符的目的,(非负)数字用无限数量的零填充。

关于python - 为什么 Python 的 hash() 值的长度不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com