1

谁能解释一下散列技巧是如何在大众中进行的?具体来说,下面的描述,来自要点:

默认值是使用 murmurhash v3(仅限 32 位)算法的变体将特征名称散列/投影到机器架构无符号字,然后与 (2^k)-1 进行与运算(即投影到第一个 k其余为 0 的低阶位)。

提到哈希与 (2^k)-1 进行“与”运算的结果。这是什么意思?我知道如果哈希是 mod 某个数字 D (hash('my string')%D),它会产生一个只能采用 D 值的新数字。这和AND'ed一样吗?如果是这样,它究竟是如何工作的?

4

1 回答 1

2

二进制中的 (2^k)-1 是“k 个”,例如 (2^6)-1 = 111111(二进制)。当您对原始哈希数和 (2^k)-1 应用逻辑与时,您实际上只取了哈希的 k 个低位。它与 mod 2^k 的操作相同。

于 2015-02-09T11:20:51.300 回答