【发布时间】:2021-05-17 16:50:25
【问题描述】:
我需要一个非密码散列函数,它接受 2 个 32 位无符号整数并只返回一个。有这样的哈希算法吗?我将如何创建一个?
【问题讨论】:
-
不,这样的功能不存在。您必须自己创建它。 (这很容易)
-
你需要它做什么?
我需要一个非密码散列函数,它接受 2 个 32 位无符号整数并只返回一个。有这样的哈希算法吗?我将如何创建一个?
【问题讨论】:
这个函数是我基于djb2a写的:
uint32_t hash(uint32_t n, uint32_t n2) {
uint32_t hash = 5381;
{
int c;
while ((c = n>>=2))
hash = hash * 33 ^ c;
while ((c = n2<<=2))
hash = hash * 33 ^ c;
}
return hash;
}
【讨论】: