求crc的calcrc函数
来源:互联网 发布:java同步锁和互斥锁 编辑:程序博客网 时间:2024/06/05 23:58
unsigned int CMIS_computerDlg::calcrc( unsigned char *ptr, int count ) //求crc的calcrc函数,ptr是指向字符数组的指针
{ //count是求crc的数据个数,while循环的次数
int i;
//unsigned char crc[2], *w;
//crc[2]='\0';
unsigned int crc; //要返回的crc 16位的
unsigned char crc1, crc2, crc3; //指向数组中连续的三个字符 8位的
crc1 = *ptr++ ;
crc2 = *ptr++ ;
while (--count >= 0) {
crc3 = *ptr++ ; //在while中补充下一个字符(8个bit)
for (i = 0; i < 8; ++i)
{
if (crc1 & 0x80) //判断crc1高位是否为1
{
crc1 = crc1 << 1; //移出高位
if(crc2 & 0x80) //判断crc2高位是否为1
{
crc1=crc1 | 0x01; //crc1低位由0变1
}
crc2 = crc2 << 1; //移出高位
if(crc3 & 0x80) //判断crc3高位是否为1
{
crc2=crc2 | 0x01; //crc2低位由0变1
}
crc3=crc3<<1; //移出高位
crc1=crc1 ^ 0x10; //前8bit与0x10异或
crc2=crc2 ^ 0x21; //后8bit与0x21异或
}
else //如果crc1高位不是1,只移位致意不做异或
{
crc1 = crc1 << 1;
if(crc2 & 0x80)
{
crc1=crc1 | 0x01;
}
crc2 = crc2 << 1;
if(crc3 & 0x80)
{
crc2=crc2 | 0x01;
}
crc3=crc3<<1;
}
}//for
}//while
crc=(crc1<<8)+crc2; //*********************8
return crc;
}
{ //count是求crc的数据个数,while循环的次数
int i;
//unsigned char crc[2], *w;
//crc[2]='\0';
unsigned int crc; //要返回的crc 16位的
unsigned char crc1, crc2, crc3; //指向数组中连续的三个字符 8位的
crc1 = *ptr++ ;
crc2 = *ptr++ ;
while (--count >= 0) {
crc3 = *ptr++ ; //在while中补充下一个字符(8个bit)
for (i = 0; i < 8; ++i)
{
if (crc1 & 0x80) //判断crc1高位是否为1
{
crc1 = crc1 << 1; //移出高位
if(crc2 & 0x80) //判断crc2高位是否为1
{
crc1=crc1 | 0x01; //crc1低位由0变1
}
crc2 = crc2 << 1; //移出高位
if(crc3 & 0x80) //判断crc3高位是否为1
{
crc2=crc2 | 0x01; //crc2低位由0变1
}
crc3=crc3<<1; //移出高位
crc1=crc1 ^ 0x10; //前8bit与0x10异或
crc2=crc2 ^ 0x21; //后8bit与0x21异或
}
else //如果crc1高位不是1,只移位致意不做异或
{
crc1 = crc1 << 1;
if(crc2 & 0x80)
{
crc1=crc1 | 0x01;
}
crc2 = crc2 << 1;
if(crc3 & 0x80)
{
crc2=crc2 | 0x01;
}
crc3=crc3<<1;
}
}//for
}//while
crc=(crc1<<8)+crc2; //*********************8
return crc;
}
- 求crc的calcrc函数
- 采用CRC查表法快速生成CRC的函数
- matlab中CRC的函数使用
- matlab中CRC的函数使用
- CRC校验的函数及校验文件示例
- 求最大公约数的函数
- 求工作日的函数
- 求函数的值
- 求函数的最大值
- 求最大公约数的函数
- 求开方的函数
- 求函数的最小值
- 求函数的最大值
- 求函数的值域
- 求阶乘的函数
- 求函数的值
- 求函数的根
- 128 - Software CRC//大数求余
- TouchXML
- C#各种时间格式化/C#日期格式化
- Microsoft Script editor 安装步骤
- DSP市场拓展纵横谈(从TI官网转载的,觉得挺不错的)
- 因数数量奇偶
- 求crc的calcrc函数
- 单例模式
- 培养孩子必做的三件事
- Assigning the return value of new by reference is deprecated in xxxx
- SQLserver锁和事务隔离级别的比较与使用
- 使用strcpy的几点心得
- 安装交叉编译工具链
- Android错误:unable to find explicit activity class
- struts2+spring+iBatis集成