murmurhash3中的参数是什么意思?

时间:2012-06-15 06:44:24

标签: c hash murmurhash

我对应该为len函数中的MurmurHash3_x86_128()参数提供什么值感到困惑(并且还有类似的函数)。可以找到murmurhash3代码here

如果您的答案是密钥的长度,请在第154行解释代码。

1 个答案:

答案 0 :(得分:4)

大部分肯定是在字节中散列的数据长度,第154行的代码:

const int nblocks = len / 16;

将此长度划分为128位块(或每个16位),这是为了促进更快的散列,因为MurmurHash3_x86_128()每次迭代处理并混合16个字节(4 x uint32)。

你会在第205行注意到:

switch(len & 15)

如果大小不是16的倍数,则捕获任何试验字节,并且switch case将它们组合成最终的散列。