arithzxz.h

来自「DES,MD5,ZLIB算法源代码 文件列表: Adler32.cpp A」· C头文件 代码 · 共 363 行 · 第 1/2 页

H
363
字号
		0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 
		0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 
		0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 
		0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 
		0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 
		0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 
		0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 
		0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 
		0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 
		0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 
		0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
	};
	
	for(int i=0; i<iLen; i++)
	{
		wCRC = (wCRC<<8) ^ CRCTable[(wCRC>>8)^ucbuf[i]];
	}
	return (wCRC);
}*/


/////////////////////////////////////////////////////////////////////////////
//功能:  	32位CRC校验
//入口:		szBuf:	字符串
//			iLen:	字符串长度
//			dwCRC32:初始值
//
//返回:  	CRC32值
//
/////////////////////////////////////////////////////////////////////////////
DWORD WINAPI CRC32(BYTE *buf, int iLen, DWORD dwCRC32);
/*
{
	DWORD CRCList[256] =
	{
		0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
		0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
		0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
		0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
		0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
		0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
		0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
		0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
		0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
		0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,
		0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
		0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
		0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
		0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
		0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
		0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
		0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
		0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
		0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
		0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
		0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
		0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
		0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
		0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
		0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
		0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
		0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
		0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
		0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
		0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
		0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
		0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
	};
	
	for(int i=0; i<iLen; i++)
	{
//		uiOff = (unsigned int)((unsigned char)buf[iOff]);
		dwCRC32 = (dwCRC32<<8)^CRCList[(dwCRC32>>24)^buf[i]];
	}

	return(dwCRC32);
}*/


/////////////////////////////////////////////////////////////////////////////
//功能:  	KMP匹配算法
//入口:		pcdad:	主字符串
//			ndad:	主字符串长度
//			pcsub:	匹配字符串
//			nsub:	匹配字符串长度(应<=512)
//
//返回:  	第一个匹配位置, 不匹配为-1
//
/////////////////////////////////////////////////////////////////////////////
int WINAPI KMPSearchMem(char *pcdad, int ndad, char *pcsub, int nsub);

/////////////////////////////////////////////////////////////////////////////
//功能:  	用MD5算法取散列值
//入口:		pcSour:	原字符串
//			iLen:   源字符串长度
//出口:		pcDest: 源字符串(16字节)
//
//返回:
//
/////////////////////////////////////////////////////////////////////////////
void WINAPI MD5(BYTE *pcSour, int iLen, BYTE *pcDest);

/////////////////////////////////////////////////////////////////////////////
//功能:  	比较两日期相关天数(1-2)
//入口:		iYear1:		第一个日期的年份
//			iMonth1:	第一个日期的月份
//			iDay1:		第一个日期的日期
//			iYear2:		第二个日期的年份
//			iMonth2:	第二个日期的月份
//			iDay2:		第二个日期的日期
//
//返回:		(1-2)的天数
/////////////////////////////////////////////////////////////////////////////
int WINAPI IntDateCmp(int iYear1, int iMonth1, int iDay1,
					  int iYear2, int iMonth2, int iDay2);

/////////////////////////////////////////////////////////////////////////////
//功能:  	比较两日期相关天数(1-2)
//入口:		pcDate1:	第一个日期(YYYY-MM-DD)
//			pcDate2:	第二个日期(YYYY-MM-DD)
//
//返回:		(1-2)的天数
//
//字符串格式: 年月日的分隔符可用任意字符,
//			  年4位, 月2位, 日2位(如2000-01-01)				  
/////////////////////////////////////////////////////////////////////////////
int WINAPI StrDateCmp(char pcDate1, char *pcDate2);

//////////////////////////////////////////////////////////////////////
//功能:  	互相转换网际顺序和Intel顺序的long值
//入口:		lValue:	原值
//
//返回:		结果值
//
//////////////////////////////////////////////////////////////////////
long WINAPI ChangeLong(long lValue);

//////////////////////////////////////////////////////////////////////
//功能:  	互相转换网际顺序和Intel顺序的short值
//入口:		shValue:	原值
//
//返回:		结果值
//
//////////////////////////////////////////////////////////////////////
short WINAPI ChangeShort(short shValue);

//////////////////////////////////////////////////////////////////////
//功能:  	字符串转换, 将看不见的字符用\X99方式表示, 或者还原
//入口:		pbyBuf:		原字符串
//			iBufLen:	原串长度
//			iMaxDestLen:目的串最大缓冲区
//			bVisible:	TRUE -> 转换
//						FASLE-> 还原
//出口:		pbyDest:	结果缓冲区
//			iMaxDestLen:结果长度
//返回:		TRUE	-> 成功
//			FALSE	-> 失败
//////////////////////////////////////////////////////////////////////
BOOL WINAPI ChangeStringVisible(BYTE *pbyBuf, int iBufLen, 
								BYTE *pbyDest, int &iMaxDestLen,
								BOOL bVisible);

//////////////////////////////////////////////////////////////////////
//功能:  	字符串转换, 将分隔符用\0方式表示, 或者还原
//入口:		pcBuf:		原字符串
//			iBufLen:	原串长度
//			iMaxDestLen:目的串最大缓冲区
//			cSeparator: 分隔符(不能是\和0)
//			bType:		TRUE -> 转换
//						FASLE-> 还原
//出口:		pcDest:		结果缓冲区
//			iMaxDestLen:结果长度
//返回:		TRUE	-> 成功
//			FALSE	-> 失败
//////////////////////////////////////////////////////////////////////
BOOL WINAPI ChangeStringSeparator(char *pcBuf, int iBufLen, 
						 char *pcDest, int &iMaxDestLen,
						 char cSeparator, BOOL bType);

#endif /*_ARITHZXZ_H__*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?