我很困惑我应该为 MurmurHash3_x86_128()
函数中的 len
参数提供什么值(也有类似的函数)。可以找到 murmurhash3 代码 here .
如果您的答案是 key 的长度,那么请解释第 154 行的代码。
最佳答案
肯定是以字节为单位进行散列的数据长度,第154行的代码:
const int nblocks = len / 16;
将此长度分成 128 位 block (或每个 16 字节),这是为了促进更快的散列,因为 MurmurHash3_x86_128()
每次迭代处理和混合 16 字节(4 x uint32)。
您会在第 205 行注意到:
switch(len & 15)
如果大小不是 16 的倍数,这会捕获任何试验字节,并且 switch case 将它们组合成最终哈希。
关于c - murmurhash3 中的参数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11045822/