C散列函数采用2个数字
Posted
技术标签:
【中文标题】C散列函数采用2个数字【英文标题】:C hashing function taking 2 numbers 【发布时间】:2021-05-17 16:50:25 【问题描述】:我需要一个非密码散列函数,它接受 2 个 32 位无符号整数并只返回一个。有这样的哈希算法吗?我将如何创建一个?
【问题讨论】:
不,这样的功能不存在。您必须自己创建它。 (这很容易) 你需要它做什么? 【参考方案1】:这个函数是我基于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;
【讨论】:
以上是关于C散列函数采用2个数字的主要内容,如果未能解决你的问题,请参考以下文章