代码之家  ›  专栏  ›  技术社区  ›  Rob Walker

(内存)地址列表的良好哈希算法

  •  6
  • Rob Walker  · 技术社区  · 16 年前

    我有一个代表堆栈帧的(64位)地址列表,我想将这些地址散列为一个64位数字,以帮助识别以前见过的那些地址。最多有128个地址。

    我目前的算法是通过迭代列表来计算散列值,将每个地址转换成散列值,并将散列值每循环旋转11位。

    有更好的建议吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   EvilTeach    16 年前

    你可能会考虑 CRC .

    也许是 CRC64 .

        2
  •  4
  •   Filip Ekberg    16 年前

    这里有两个不错的整数哈希函数,分别用于32位和64位: http://www.concentric.net/~Ttwang/tech/inthash.htm

    这里还有一些文字: http://burtleburtle.net/bob/hash/evahash.html

        3
  •  0
  •   orip    16 年前

    如果性能不是问题,您可以尝试加密散列-截断到您想要的字节数。