我想将10个基数10位(0到9,999,999,999)塞进6个十六进制数字(00 00 00到FF FF FF)。我知道会有碰撞,那很好。我也不需要担心单独的链条来容纳冲突。此外,我不需要将哈希转换回原始链接。只需要设置一定数量的桶(3个字节中的6个十六进制数字),可以表示为00 00 00到FF FF FF。所以是的,在0到9,999,999,999之间会有许多数字映射到那些桶......那很好。
有没有人知道这样做的好算法,或者Java / Kotlin中的包?
最简单的方法是简单地在基数10上使用mod
base_var_value % 16777215
这个16M的数字只是十六进制的FF FF FF
。