任何人都可以解释在大众中如何进行哈希技巧?具体来说,下面的描述来自要点:
默认是对机器进行哈希/投影功能名称 使用murmurhash v3的变体的架构unsigned word (仅32位)算法然后与(2 ^ k)-1进行AND运算(即它是 投影到第k个低阶位,其余为0。)
提到散列的结果是'ANDed'和(2 ^ k)-1。这是什么意思?我理解如果散列是mod某个数字D (hash('my string')%D)
,它会产生一个只能取D值的新数字。这和AND'ed一样吗?如果是这样,它究竟是如何运作的?
答案 0 :(得分:2)
(2 ^ k)-1是“k个”,例如(2 ^ 6)-1 = 111111(二进制)。当您对原始哈希值和(2 ^ k)-1应用logical AND时,您实际上只接受哈希的k个低位。它与mod 2 ^ k的操作相同。