注册 登录
编程论坛 数据结构与算法

字符串转哈希值的问题

令狐少侠56 发布于 2017-02-13 23:28, 1767 次点击
人名:四个字符组成,前三个是字符,第四个是数字。
将它转化为整数
name[4]:保存字串
为什么可以用下面的方法计算,不会出现重复的吗。
学生的名字前三位是大写英文字母,第4位是数字,也就是说最多有26*26*26*10个学生,每个学生的名字都可以用一个数字表示。
name[0]-'A')*26*26*10+(name[1]-'A')*26*10+(name[2]-'A')*10+name[3]-'0'
1 回复
#2
xzlxzlxzl2017-02-16 09:27
我觉得:这就是26进制转10进制,当然不会重复,其实乘以10都没必要,想想16进制怎么转十进制就明白了。
举一个浅显的例子:假如对全班同学的语文数学成绩进行排序(分值100),通常排序方法会是先比较语文,如果语文成绩相等再比较数学,其实还有一个一次性的比较方法,我觉得你能很轻松地想到:语文*1000+数学,把语文数学成绩合并到一个6位数的整数里,这样就不会因计算产生交叉重复了。

[此贴子已经被作者于2017-2-16 10:14编辑过]

1