由买买提看人间百态

topics

全部话题 - 话题: hashval
(共0页)
h**o
发帖数: 548
1
来自主题: Programming版 - a question about hash.
我大致明白这段程序是把一个字符串 hash 成一个值。就是不知道这里的 31 和 7951
是 随便定的那, 还是由什么著名的算法规定的。求教:
static unsigned int bm_Hash(const void *key, unsigned int size1)
{
unsigned long hashval=0, hv;
unsigned char *s=(unsigned char *)key;
for (hashval = 0; (s != NULL) && (*s != '\0'); s++)
hashval = (*s) + 31*hashval;
hv = hashval*7951;
return (size1)?(hv % size1):0;
}
(共0页)