c - murmurhash3 中的参数是什么意思?

标签 c hash murmurhash

我很困惑我应该为 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/

相关文章:

结构数据中的 CSV 文件数据,用于使用 C 进行哈希处理

python - 如何从 auth_user django python 中选择给定用户名和哈希密码的用户

c++ - 如何在 Hasher 中使用非静态成员函数?

c - C中的线程,如何使用它们来移动玩家?

c - 对 murmurhash3 提出改进建议

performance - 在键值存储中使用哈希作为 ID

cassandra - 如何为复合分区键生成 Cassandra token ?

python - 将Python转换为C,然后用Cython编译成exe

c - C 中带环绕的 8 位校验和

c - 如何将文本文件复制到C中的字符串?