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