亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hash.c

?? 幾種c語言的hash算法
?? C
字號:
#include <stdio.h>
#include <fcntl.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/time.h>
#include <time.h>
#include <math.h>


	struct timeval tpstart,tpend;
	float  timeuse;
#define HASH_VALUE 0x9E3779B9	//((sqrt(5)-1)/2)*(2^32)
// RS Hash Function
unsigned long RSHash(char* str)
{
    unsigned long b = 378551;
    unsigned long a = 63689;
    unsigned long hash = 0;

    while (*str)
    {
        hash = hash * a + (*str++);
        a *= b;
    }

    return (hash & 0x7FFFFFFF);
} 
 
// JS Hash Function
unsigned long JSHash(char* str)
{
    unsigned long hash = 1315423911;

    while (*str)
    {
        hash ^= ((hash << 5) + (*str++) + (hash >> 2));
    }

    return (hash & 0x7FFFFFFF);
}
 
// P.J.Weinberger Hash Function
unsigned long PJWHash(char* str)
{
    unsigned long BitsInUnignedInt = (unsigned long)(sizeof(unsigned long) * 8);
    unsigned long ThreeQuarters    = (unsigned long)((BitsInUnignedInt * 3) / 4);
    unsigned long OneEighth        = (unsigned long)(BitsInUnignedInt / 8);

    unsigned long HighBits         = (unsigned long)(0xFFFFFFFF) << (BitsInUnignedInt - OneEighth);
    unsigned long hash             = 0;
    unsigned long test             = 0;

    while (*str)
    {
        hash = (hash << OneEighth) + (*str++);
        if ((test = hash & HighBits) != 0)
        {
            hash = ((hash ^ (test >> ThreeQuarters)) & (~HighBits));
        }
    }

    //return (hash & 0x7FFFFFFF);
    return (hash);
} 
 
// ELF Hash Function
unsigned long ELFHash(char* str)
{
    unsigned long hash = 0;
    unsigned long x    = 0;

    while (*str)
    {
    		//printf("%c,%d ", *str, *str);
        hash = (hash << 4) + (*str++);        
        if ((x = hash & 0xF0000000L) != 0)
        {
            hash ^= (x >> 24);
            hash &= ~x;
        }
    }

    //return (hash & 0x7FFFFFFF);
    return (hash);
}

// BKDR Hash Function
unsigned long BKDRHash(char* str)
{
    unsigned long seed = 131;  //  31 131 1313 13131 131313 etc..
    unsigned long hash = 0;

    while (*str)
    {
        hash = hash * seed + (*str++);
    }

    return (hash & 0x7FFFFFFF);
}

// SDBM Hash Function
unsigned long SDBMHash(char* str)
{
    unsigned long hash = 0;

    while (*str)
    {
        hash = (*str++) + (hash << 6) + (hash << 16) - hash;
    }

    return (hash & 0x7FFFFFFF);
}

// DJB Hash Function
unsigned long DJBHash(char* str)
{
    unsigned long hash = 5381;

    while (*str)
    {
        hash += (hash << 5) + (*str++);
    }

    return (hash & 0x7FFFFFFF);
}

// AP Hash Function
unsigned long APHash(char* str)
{
    unsigned long hash = 0;
    int i;

    for (i = 0; *str; i++)
    {
        if ((i & 1) == 0)
        {
            hash ^= ((hash << 7) ^ (*str++) ^ (hash >> 3));
        }
        else
        {
            hash ^= (~((hash << 11) ^ (*str++) ^ (hash >> 5)));
        }
    }

    return (hash & 0x7FFFFFFF);
}

//------------------------------------------------------------------
//16進制轉相同數值的10進制數
//------------------------------------------------------------------
unsigned char  bcd_hex_1byte(unsigned char value) 
{
  	unsigned char rtn_value;
  	rtn_value  = value/16;
  	rtn_value *= 10;
  	rtn_value += value&0x0f;
  	return rtn_value;
}
#define ulong unsigned long 
unsigned long MyHash(unsigned char *str)
{
	int i;
	unsigned long temp, value;
	
	temp = 0;
	value = 0;
	
	for (i = 0; i < 4; i++)
		temp = (ulong)str[3]<<24 | str[2]<<16 | str[1]<<8 | str[0];
	for (i = 4; i < 8; i++)
		value = (ulong)str[7]<<24 | str[6]<<16 | str[5]<<8 | str[4];
		
	//for (i = 0; i < 255; i ++)	
	//{
			value += temp;
			value *= HASH_VALUE;
			printf("--------0x%x--------\n", value);
			value >>= 15;
			printf("--------0x%x-------\n", value);
			//temp++;
	//}
	
	return value;
	//return (value & 0xFFFFFFFF);
}

//int main(int argc, char** argv)
int main()
{
	unsigned long key;
	int i;
	//unsigned char test[] = {0x00,0x11,0x22,0x33, 0x44,0x55, 0x66, 0x77};
	unsigned char test[] = {0x00,0x00,0x00,0x01, 0x00,0x0, 0x00, 0x01};
	unsigned char test1[] = {0x00,0x00,0x00,0x00, 0x00,0x00, 0x00, 0x02};
		
	//printf("%d,  %s\n", argc, argv[1]);
#if 0			
	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = RSHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
 	
 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = JSHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
 	
 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = PJWHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
//#endif

 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = ELFHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 

//#if 0 	
 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = BKDRHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
 	
 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = SDBMHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
 	
 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = DJBHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
 	
 	
 	
 	gettimeofday(&tpstart,NULL);
	//---------------------------------------------
	key = APHash(argv[1]);
	//---------------------------------------------
	gettimeofday(&tpend,NULL); 
	timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ 
	tpend.tv_usec-tpstart.tv_usec; 
 	timeuse/=1000000; 
 	printf("------Used Time:%fs-----key=%ld--------\n", timeuse, key); 
#endif
	//---------------------------------------------
	//for (i = 0; i < 255; i++)
	//{
			MyHash(test);
			MyHash(test1);
			//printf("--------key=0x%x--------\n", key); 
			//test[7]++;
	//} 	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级精品大片| 日韩一区二区电影网| 久久亚洲二区三区| 久久精品亚洲麻豆av一区二区| 亚洲精品一区二区三区影院| 91精品国产色综合久久ai换脸| 91精品国产aⅴ一区二区| 亚洲国产精品久久久久婷婷884| 一区二区欧美精品| 亚洲18女电影在线观看| 看片的网站亚洲| 国产在线播精品第三| 成熟亚洲日本毛茸茸凸凹| 一本色道久久综合精品竹菊| 91黄视频在线观看| 精品99一区二区三区| 国产精品综合二区| 欧美性一二三区| 久久久国产精品麻豆| 亚洲成人免费视| 日韩色在线观看| 福利一区二区在线观看| 日韩天堂在线观看| 国产精品正在播放| 最新不卡av在线| 麻豆精品一二三| 欧美在线免费观看亚洲| 国产精品免费aⅴ片在线观看| 五月天欧美精品| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美日韩久久久久久| 国产性色一区二区| 色诱亚洲精品久久久久久| 日韩精品免费视频人成| 色老头久久综合| 美女高潮久久久| 中文字幕中文乱码欧美一区二区| 久久99精品国产麻豆婷婷洗澡| 欧美日韩三级一区二区| 亚洲免费观看高清完整版在线观看| 国产一区二区在线观看免费| 亚洲欧美日韩精品久久久久| 91精品国产91久久久久久一区二区 | 一二三四区精品视频| 日韩精品在线一区| 亚洲国产另类精品专区| 精品粉嫩超白一线天av| 日本高清免费不卡视频| 国产美女在线精品| 午夜久久久久久| 国产精品久久久久久久久晋中| 欧美高清视频www夜色资源网| 天天色综合天天| 国产欧美一区二区精品性色| 九色综合国产一区二区三区| 国产精品美女久久福利网站| 欧美一区二区免费视频| 成人性生交大片免费看在线播放| 日本不卡1234视频| 精品美女在线播放| 久久99精品久久久久久国产越南| 一区二区三区高清| 国产精品女主播av| 久久奇米777| 日韩欧美你懂的| 欧美午夜精品理论片a级按摩| 成人高清伦理免费影院在线观看| 国产精品视频你懂的| 精品国产一区二区三区不卡 | wwwwxxxxx欧美| 欧美丰满一区二区免费视频 | 欧美日韩国产精品成人| 一本大道综合伊人精品热热| 国产成人av福利| 中文字幕在线观看一区| 91片黄在线观看| 亚洲少妇最新在线视频| 国产亚洲精久久久久久| 精品国产乱码久久久久久久| 日韩一级高清毛片| 666欧美在线视频| 久久精品二区亚洲w码| 日本一不卡视频| 国产亚洲女人久久久久毛片| 精品国免费一区二区三区| 日韩一区二区在线观看| 欧美一区二区三区不卡| 欧美一级片在线观看| 欧美一二三四区在线| 日韩欧美成人午夜| 日韩美女一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 日韩欧美一区在线| 欧美videos大乳护士334| 久久久天堂av| 中文字幕欧美日韩一区| 91精品国产综合久久福利软件| 欧美人动与zoxxxx乱| 欧美一级欧美一级在线播放| 欧美精品一区二区三区四区| 日韩一本二本av| 国产夜色精品一区二区av| 中文成人av在线| 亚洲精品五月天| 国产亚洲一本大道中文在线| 国产目拍亚洲精品99久久精品| 国产精品色婷婷| 男女男精品视频| 裸体在线国模精品偷拍| 成人免费视频caoporn| 99久久精品国产麻豆演员表| 久久精品国产亚洲高清剧情介绍 | 精品日产卡一卡二卡麻豆| 久久精品欧美一区二区三区麻豆| 亚洲色欲色欲www| 日韩中文字幕一区二区三区| 狠狠色伊人亚洲综合成人| 午夜精品久久久久久久蜜桃app| 日本va欧美va精品| 国产大陆精品国产| 在线免费不卡视频| 日韩视频在线你懂得| 国产精品乱码人人做人人爱| 亚洲精品久久久久久国产精华液 | 国产一区欧美二区| 99热精品一区二区| 成人av影院在线| 欧美三级电影在线看| 久久亚洲精华国产精华液 | 欧美色综合影院| 日韩欧美亚洲国产另类| 中文字幕在线不卡视频| 人人精品人人爱| 色婷婷国产精品| 国产亚洲精品精华液| 视频一区中文字幕| gogogo免费视频观看亚洲一| 日韩视频中午一区| 一区二区三区**美女毛片| 国产精品夜夜嗨| 欧美电影一区二区| 亚洲欧美日韩人成在线播放| 国产一区二区女| 日韩一区二区三区四区| 一区二区在线观看不卡| 高潮精品一区videoshd| 91精品国产综合久久久久久 | 亚洲va中文字幕| 成人97人人超碰人人99| 久久综合色播五月| 日韩国产欧美在线播放| 91原创在线视频| 久久久久国产精品麻豆| 久久精品一区二区| 国产精品国产三级国产普通话99| 香蕉久久一区二区不卡无毒影院| 偷拍与自拍一区| 一本大道久久a久久精二百| 欧美mv和日韩mv国产网站| 亚洲三级在线看| 成av人片一区二区| 欧美大片免费久久精品三p| 水野朝阳av一区二区三区| 韩国视频一区二区| 欧美第一区第二区| 亚洲大片免费看| 99re热视频精品| 自拍偷拍亚洲综合| 国产精品一区不卡| 精品少妇一区二区三区免费观看 | 日本一区免费视频| 裸体一区二区三区| 欧美精品欧美精品系列| 亚洲图片激情小说| 一本到三区不卡视频| 国产精品情趣视频| 国产电影一区在线| 26uuu欧美| 国产精品一二三四| 久久一区二区视频| 韩国av一区二区三区四区| 欧美另类z0zxhd电影| 视频精品一区二区| 欧美日本一区二区| 亚洲国产成人va在线观看天堂| 成人免费视频播放| 一区二区三区在线影院| 99re在线视频这里只有精品| 欧美激情一区不卡| 国产一区二区三区免费播放| 欧美成人在线直播| 久久er精品视频| 亚洲精品在线三区| 成人激情动漫在线观看| 国产精品欧美综合在线| 成人综合婷婷国产精品久久| 国产亚洲一区二区三区四区| 丁香六月久久综合狠狠色| 日韩欧美你懂的| 国产99久久精品|