gpt4 book ai didi

c - 如何将长无符号转换为无符号char *?

转载 作者:行者123 更新时间:2023-12-02 05:50:56 28 4
gpt4 key购买 nike

我正在尝试哈希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;
}

有没有办法实现我的目标,也许在两者之间进行转换?

最佳答案

unsigned long x;

unsigned char * p = (unsigned char*)&x;

确保通过 p使用所有4个字节,或者系统上 unsigned long的长度是多少。

关于c - 如何将长无符号转换为无符号char *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16537069/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com