Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想从字符串生成一个散列码作为 int 。
是否有预定义的算法?在 C 中是否有该算法的实现?
char name[100]="langage c"
为该name缓冲区生成一个哈希码到一个整数变量中
name
int hash_code;
类似的东西
int algo_hash(char *name) { //hash algorithme } hash_code = algo_hash(name);
尽可能寻找简单的代码
通用技术称为“散列”。如果你有一个已知的字符串列表,你可以使用工具gperf为它们生成一个完美的哈希函数。
如果字符串是随机的,则在具有这些约束的一般情况下这是不可能的。您可以使用 SHA-1 哈希算法,但它会从字符串中生成 160 位数字,并且不能 100% 保证这些值是唯一的(与 SHA-1 发生冲突的可能性很小,但并非不可能)。
我相信您需要的是实现hashing。它仍然不是独一无二的 - 我怀疑你是否能够避免碰撞。