我试图哈希一个unsigned long值,但哈希函数需要一个unsigned char *,如下面的实现中所示:
unsigned long djb2(unsigned char *key, int n)
{
unsigned long hash = 5381;
int i = 0;
while (i < n-8) {
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
hash = hash * 33 + key[i++];
}
while (i < n)
hash = hash * 33 + key[i++];
return hash;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现我的目标,也许是两者之间的演员?
use*_*961 11
unsigned long x;
unsigned char * p = (unsigned char*)&x;
Run Code Online (Sandbox Code Playgroud)
确保在系统中使用全部4个字节p,或者unsigned long系统的长度.
| 归档时间: |
|
| 查看次数: |
28626 次 |
| 最近记录: |