C hash3中的参数是什么意思?

C hash3中的参数是什么意思?,c,hash,murmurhash,C,Hash,Murmurhash,我不知道应该为3_x86_128()函数中的len参数提供什么值(也有类似的函数)。可以找到hash3代码 如果您的答案是这是密钥的长度,那么请解释第154行的代码。这肯定是要散列的数据长度(以字节为单位),第154行的代码: const int nblocks = len / 16; 将此长度划分为128位块(或每个块16字节),这是为了加快散列速度,因为杂音散列3_x86_128()每次迭代处理和混合16个字节(4 x uint32) 您将在第205行注意到: switch(len &am

我不知道应该为
3_x86_128()
函数中的
len
参数提供什么值(也有类似的函数)。可以找到hash3代码


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

这肯定是要散列的数据长度(以字节为单位),第154行的代码:

const int nblocks = len / 16;
将此长度划分为128位块(或每个块16字节),这是为了加快散列速度,因为
杂音散列3_x86_128()
每次迭代处理和混合16个字节(4 x uint32)

您将在第205行注意到:

switch(len & 15)
如果大小不是16的倍数,这将捕获任何试验字节,并且开关案例将它们合并到最终哈希中