`

UNIX: System-V-Hash 生成算法

阅读更多
尽量少产生collision

int ELFhash(char* key) {
    unsigned long h = 0;
    while(*key) {
        h = (h << 4) + *key++;  //move left 4 bit
        unsigned long g = h & 0xF0000000L;   //and
        if(g) h ^= g >> 24;    //or , move right
        h &= ~g;    //and, not, 
    }
    return h % M;
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics