有人可以解释为什么这个哈希码是"好"?

时间:2017-04-02 02:15:19

标签: javascript hash hashmap hashtable hashcode

这是哈希码(用javascript编写),来源:https://github.com/m3talstorm/hashcode/blob/master/lib/hashcode.js

const hash = (string) => {
    let hash = 0
    string = string.toString()
    for(let i = 0; i < string.length; i++) {
        hash = (((hash << 5) - hash) + string.charCodeAt(i)) & 0xFFFFFFFF
    }
    return hash
}

我不理解for循环。

1)为什么开发人员将哈希变量向左移5位并从结果中减去哈希值?

2)为什么开发人员使用&#34;&amp; 0xFFFFFFFF&#34;?没有任何数字与之对比只是给出数字吗?

我在另外两个例子中看到了它,所以我假设这是一个非常受欢迎的哈希码实现。如果是这样,我想学习它。

0 个答案:

没有答案