Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我对应该为函数len中的参数提供什么值感到困惑MurmurHash3_x86_128()(也有类似的函数)。murmurhash3 代码可以在这里找到。
len
MurmurHash3_x86_128()
如果您的回答是密钥长度,请在第 154 行解释代码。
大部分肯定是要散列的数据长度(以字节为单位),第 154 行的代码:
const int nblocks = len / 16;
将此长度划分为 128 位块(或每个 16 字节),这是为了促进更快的散列,因为MurmurHash3_x86_128()每次迭代处理和混合 16 字节(4 x uint32)。
你会在第 205 行注意到:
switch(len & 15)
如果大小不是 16 的倍数,这将捕获任何试用字节,并且 switch 案例将它们组合到最终哈希中。