C ++中varchar(string)的哈希函数

时间:2012-02-10 10:21:07

标签: c++ integer hash varchar

我有一个varchar(512)类型的密钥,我想只使用该字符串的前2个或前3个字符来散列它。请告诉我在C ++中使用哪个哈希函数。我想只在数字中得到哈希值。数字范围可以是长类型,即int(64)。

2 个答案:

答案 0 :(得分:2)

为什么不把字符放在像这样的无符号整数中:

unsigned int hash = ((unsigned int) field[0]) |
                    ((unsigned int) field[1] << 8) |
                    ((unsigned int) field[2] << 16);

快速,简单,您可以获得前三个字母的所有独特组合的唯一值。

答案 1 :(得分:0)

使用Boost CRC哈希函数。 更多信息请访问:http://www.boost.org/doc/libs/1_37_0/libs/crc/index.html