-
-
-
fuxinrenzhong | 当前状态:离线
总积分:1355 2025年可用积分:0
注册时间: 2005-09-03
最后登录时间: 2016-03-17
-
-
共享一个万能CRC校验的方法
fuxinrenzhong 发表于 2008/10/8 13:21:43 953 查看 3 回复 [上一主题] [下一主题]
手机阅读
unsigned short CTestCRC16Dlg::CRC16(unsigned short
usStartValue, unsigned short usPolynomial,BYTE *pby, int ilen)
{
ASSERT(pby != NULL || ilen > 0);
unsigned short usCRC16 = usStartValue;
unsigned short usTemp1 = 0;
unsigned short usTemp2 = 0;
unsigned short usFlag = 0;
BYTE byTemp = 0x00;
int i=0;
int j=0;
for(i=0; i<ilen; i++)
{
byTemp = pby【i】;
usCRC16 = usCRC16^byTemp;
for(int j=0; j<8; j++)
{
usFlag = usCRC16&0x0001;
usTemp1 = (usCRC16>>1);
if(usFlag == 0)
{
usTemp2=0;
}
else
{
usTemp2 = usPolynomial;
}
usCRC16 = usTemp1^usTemp2;
}
}
return usCRC16;
}
参数说明:
usStartValue:开始值。
usPolynomial:多项式值。
pby:待校验的数据。
ilen:校验字节数。
返回值:CRC 16位校验。
-
-
-
-
true_toyou | 当前状态:离线
总积分:687 2025年可用积分:0
注册时间: 2007-12-18
最后登录时间: 2014-07-14
-
-
true_toyou 发表于 2008/10/7 14:04:09
引用 true_toyou 2008/10/7 14:04:09 发表于2楼的内容
-
-
-
-
-
dingxiubing | 当前状态:在线
总积分:8127 2025年可用积分:0
注册时间: 2006-07-13
最后登录时间: 2020-12-10
-
-
dingxiubing 发表于 2008/10/7 14:16:43
引用 dingxiubing 2008/10/7 14:16:43 发表于3楼的内容
-