crcv2.c
来自「加权多项式采用CRC16=X16+X15+X5+1」· C语言 代码 · 共 57 行
C
57 行
#include<stdio.h>
typedef unsigned char uchar;
typedef unsigned int uint;
uchar crcbuff[]={0x00,0x00,0x00,0x00,0x06,0x0d,0xd2,0xe3};
uint crc;
uint crc16(uchar *ptr,uchar len)
{
uchar i;
while(len--)
{
for(i=0x80;i!=0;i>>=1)
{
if((crc&0x8000)!=0)
{
crc<<=1;
crc^=0x1021;
}
else
crc<<=1;
if((*ptr&i)!=0)
crc^=0x1021;
}
ptr++;
}
return(crc);
}
void main(void)
{
uchar *ptr;
//uchar data;
//FILE *fp;
crc=0;
//fp=fopen("mydata.txt","w+t");
ptr=crcbuff;
/*for(data=0x00;data<0xff;data++)
{
crc=0;
crc=crc16(&data,1);
fprintf(fp,"0x%4X\n",crc);
}
data=0xff;
crc=0;
crc=crc16(&data,1);
fprintf(fp,"0x%4X\n",crc);
fclose(fp);*/
crc=crc16(ptr,8);
printf("0x%4X\n",crc);
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?