sdbmhash函数

对字符串进行hash

1
2
3
4
5
6
7
8
9
10
11
unsigned int (char *str)
{
unsigned int hash = 0;
while(*str) {
// 左移n,就是乘以2的n次方
// hash * 64 + hash * 65536 - hash
hash = (*str++) + (hash << 6) + (hash << 16) - hash;
}
return hash & 0x7FFFFFFF;
}