ELF哈希技术
ELFhash详情见点击打开链接
代码如下:
unsigned int ELFhash(char *str)
{
	unsigned int hash=0;
	unsigned int x=0;
	while(*str)
	{
		hash=(hash<<4)+*str;
		if((x=hash & 0xf0000000)!=0)
		{
			hash^=(x>>24);   //影响5-8位,杂糅一次
			hash&=~x;   //清空高四位
		}
		str++;
	}
	return (hash & 0x7fffffff);
}
或则
int ELFhash(char *key){
    unsigned long h = 0;
    unsigned long x = 0;
    while (*key)
    {
        h = (h << 4) + (*key++);  //h左移4位,当前字符ASCII存入h的低四位
        if ((x = h & 0xF0000000L) != 0)
        { //如果最高位不为0,则说明字符多余7个,如果不处理,再加第九个字符时,第一个字符会被移出
            //因此要有如下处理
            h ^= (x >> 24);
            //清空28~31位
            h &= ~x;
        }
    }
    return h % HASH_BASE;
}  												
											ELF哈希技术的更多相关文章
- hdu1425 哈希技术
		
常用的技巧,把每个数字分别对应数组的下标,如果存在小于零的数字,就统一加一个数使得都能映射到一个下标上去. AC代码: #include<cstdio> #include<cstri ...
 - 局部敏感哈希-Locality Sensitive Hashing
		
局部敏感哈希 转载请注明http://blog.csdn.net/stdcoutzyx/article/details/44456679 在检索技术中,索引一直须要研究的核心技术.当下,索引技术主要分 ...
 - HashMap分析 + 哈希表
		
http://www.cnblogs.com/hzmark/archive/2012/12/24/HashMap.html http://www.cnblogs.com/xqzt/archive/20 ...
 - python数据结构与算法 29-1 哈希查找
		
).称为哈希查找. 要做到这种性能,我们要知道元素的可能位置.假设每一个元素就在他应该在的位置上,那么要查找的时候仅仅须要一次比較得到有没有的答案,但以下将会看到.不是这么回事. 到10. water ...
 - 解决哈希(HASH)冲突的主要方法
		
https://blog.csdn.net/xtzmm1215/article/details/47177701 虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的.当关键字值域远大于哈希 ...
 - 最小哈希 minhash
		
最小哈希 维基百科,自由的百科全书 跳到导航跳到搜索 在计算机科学领域,最小哈希(或最小哈希式独立排列局部性敏感哈希)方法是一种快速判断两个集合是否相似的技术.这种方法是由Andrei Bro ...
 - 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
		
uber全球用户每天会产生500万条行程,保证数据的准确性至关重要.如果所有的数据都得到有效利用,t通过元数据和聚合的数据可以快速检测平台上的滥用行为,如垃圾邮件.虚假账户和付款欺诈等.放大正确的数据 ...
 - Linux Dynamic Shared Library && LD Linker
		
目录 . 动态链接的意义 . 地址无关代码: PIC . 延迟版定(PLT Procedure Linkage Table) . 动态链接相关结构 . 动态链接的步骤和实现 . Linux动态链接器实 ...
 - C++11学习笔记
		
C++11 1.long long新类型 2.列表初始化 int t=0; int t={0}; int t(0); int t{0}; 注意:如果我们使用列表初始化有丢失信息的风险,则编译器报错 l ...
 
随机推荐
- linux下ftp命令的安装与使用
			
注意:实际使用时可以直接尝试第5步,如果提示找不到ftp命令,再进行第4步安装,如安装失败再进行第1步,然后顺序执行即可 1. 下载rpm文件 例如:ftp-0.17-51.1.el6.x86_64. ...
 - 关于define和const
			
1.通过define定义的常量,在C语言里面一般叫宏定义.define的本质是简单的文本替换. 2.const定义一个变量,但是这个变量的值只能在定义的时候赋予,之后就不能被更改了. 如果变量声明中带 ...
 - 关于Linux的常忘命令积累
			
1.在vim中显示行号 在/etc/vimrc里加上一行 set nu! 2./etc/sysconfig/network-scripts/ifcfg-eth0 (DNS1=192.168.1 ...
 - 这可能是我觉得最折腾的C++环境配置(编码+调试)--mac+eclipse
			
本着造福大众的心态,万一可能有人喜欢这种环境开发呢对吧~~折腾了一天,又是谷歌又是百度,讲真遇到报错问题搜出的资料挺少的,看来用这类环境开发C++的人不多,毕竟谁没事干放着xcode,vscode不用 ...
 - 小白入门Docker基础篇
			
docker是什么 百科上的解释是这样的: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...
 - PyCharm运行Nosetests并导出测试报告
			
1. Pycharm运行Nosetests PyCharm可以使用两种方法,运行Nosetests测试文件: 1) 图形用户界面GUI a) 在PyCharm中,选中测试文件,如Tests/test_ ...
 - 解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE
			
问题 如下: 2017-07-16 08:50:57.436 INFO 13524 --- [ main] c.p.p.web.PointshopWebApplication ...
 - 给php加速安装APC
			
说明:APC-3.1.13 适应于 php-5.4.27 下载: wget http://blog.xinfilm.com/softdir/APC-3.1.13.tgz tar -zxvf APC-3 ...
 - BZOJ 4538: [Hnoi2016]网络 [整体二分]
			
4538: [Hnoi2016]网络 题意:一棵树,支持添加一条u到v权值为k的路径,删除之前的一条路径,询问不经过点x的路径的最大权值 考虑二分 整体二分最大权值,如果\(k \in [mid+1, ...
 - BZOJ 4259: 残缺的字符串 [FFT]
			
4259: 残缺的字符串 题意:s,t,星号任意字符,匹配方案数 和上题一样 多乘上一个\(a_{j+i}\)就行了 #include <iostream> #include <cs ...