c语言 CRC的检验方式 我想问一下。这下面的C语言返回的CRC的值是啥。他有他的公式是怎么样的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 CRC的检验方式 我想问一下。这下面的C语言返回的CRC的值是啥。他有他的公式是怎么样的相关的知识,希望对你有一定的参考价值。

unsigned char crc_8n(unsigned char *ptr,unsigned char n)

unsigned char crc = 0; //CRC preset
unsigned char i, j;
const unsigned char poly = 0x8C; //CRC polynom
for (i=0;i<n;i++)

crc ^= ptr[i];
for (j=0; j<8; j++)

if (crc&1)

crc = (crc>>1) ^ poly;

else

crc = (crc>>1);



return crc;

CRC又称循环冗余校验,CRC返回的值其实是校验位,校验位分高位和低位。
实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。
参考技术A http://baike.baidu.com/view/1664507.htm

以上是关于c语言 CRC的检验方式 我想问一下。这下面的C语言返回的CRC的值是啥。他有他的公式是怎么样的的主要内容,如果未能解决你的问题,请参考以下文章

C语言 结构复制

我想问一下大学专业英文怎么说?

C语言浮点型数据能不能取余?

CRC校验原理及其C语言实现

我要用C语言编写CRC16效验码。通过输入一个串然后计算出CRC16效验码。例如:输入010600001388计算得到849C

c语言关于文件读写的问题