⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc_ccitt_c.c

📁 可以将以bit为单位进行处理的算法扩展到8位
💻 C
字号:
typedef unsigned char uchar;
typedef unsigned int uint;
uint crc=0; // CRC 码

code uint crc_table [16]={
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
};

uint ban_crc(uchar *point, uchar len) 
 // point 为数据指针,len 为数据字节长度
{
uchar da4;
while(len--!=0)
{
da4 = ((uchar)(crc/256))/16;
crc <<= 4;
crc ^= crc_table [da4^(* point /16)];
da4 = ((uchar)(crc/256)/16);
crc <<= 4;
crc ^= crc_table [da4^(* point&0x0f)];
ptr++;
}
return(crc);
}

code uchar crcbuff [] = {  0x01,0x02,0x03,0x04,0x05};
void main(void)
{
uchar *ptr;
crc = 0; // CRC 初值
ptr = crcbuff; // 指向第一个Byte 数据
crc = ban_crc(ptr,5);
while(1);
}

⌨️ 快捷键说明

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