通过BKDRHASH将字符串转化为数值类型
2017-12-04 14:43
661 查看
似乎很多题目里有任务啊什么的代号是字符串,会增加内存开销和用时,把它们全部转化成int就会好很多,然后研究了一会发现有很多字符串的hash函数,这个BKDRHASH相对还不错,就记录下来。
seed是一个系数,是为了减少碰撞,也就是重复,因为不加任何处理,光是ASCII码相加肯定很容易出现相同的,那么就无法实现一个字符串对应一个整型,不过这个系数的选取好复杂啊。。。暂时不想去研究,看了一会不看了,emmm。
unsigned int bkdr_hash(const char *str) { unsigned int seed = 131; // the magic number, 31, 131, 1313, 13131, etc.. orz.. unsigned int hash = 0; unsigned char *p = (unsigned char *) str; while (*p) hash = hash*seed + (*p++); //0x7FFFFFFF是long int 最大值 return hash&0x7FFFFFFF; }
seed是一个系数,是为了减少碰撞,也就是重复,因为不加任何处理,光是ASCII码相加肯定很容易出现相同的,那么就无法实现一个字符串对应一个整型,不过这个系数的选取好复杂啊。。。暂时不想去研究,看了一会不看了,emmm。
相关文章推荐
- 判断字符串是否可以转化为数值类型
- jsp从固定类型的字符串中取出多个数值并转化为float型
- 关于C#中货币类型和数值类型、字符串类型的转化和在DataGridView中的显示问题:
- [置顶] 如何将比Long类型更大数值字符串转化为整数
- 【C++】字符串和数值类型的相互转化(借助STL)
- 字符串与数值类型的转化
- 字符串类型转化成数值类
- C#中货币类型和数值类型、字符串类型的转化
- QT QString, wchar_t *, TCHAR, CString和其他字符或字符串类型的转化
- 如何将操做日志中的字符串类型的时间转化成logstash中的@timestamp
- C++:通过一个点的数据对象转换成字符串的例子来说明整数转化为字符串
- 正则表达式匹配数值类型字符串
- 关于字符串数据转化为float类型的问题
- 将未指定格式的日期字符串转化成java.util.Date类型日期对象
- 关于SQL Server中将数值类型转换为字符串的问题
- 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
- Vision_字符串_字符串哈希(BKDR Hash)
- VC Afx全局函数 数据类型 字符串转化函数
- 转换函数:TO_CHAR()用法之一 将一个数值转化成字符串
- (转)在VS2005/2008中字符串编码问题的解决及字符串和数值类型常用的转换方法