c语言crc校验,C语言crc校验程序

dfnjsfkhak 23 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言crc校验问题,于是小编就整理了3个相关介绍c语言crc校验的解答,让我们一起看看吧。

  1. excel表格能做crc校验吗?
  2. CRC校验的算法?
  3. 求CRC校验计算方法?

excel表格能做crc校验吗?

Excel表格本身并不具备进行CRC校验的功能。CRC校验是一种用于检测数据传输错误的校验方法,它涉及对二进制数据进行计算。虽然Excel可以进行一些计算和数据处理操作,但它并不直接支持CRC校验算法如果需要在Excel中实现CRC校验,可能需要使用定义的宏或公式来实现相应的计算逻辑

CRC校验的算法?

1. 选择合适的除数

c语言crc校验,C语言crc校验程序-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

2. 看选定除数的二进制位数然后再要发送的数据帧上面加上这个位数-1位的0,然后用新生成的帧以模2除法的方式除上面的除数,得到的余数就是该帧的CRC校验码。注意,余数的位数一定只比除数位数少一位,也就是CRC校验码位数比除数位数少一位,如果前面位是0也不能省略。

3. 将计算出来的CRC校验码附加在原数据帧后面,构建成一个新的数据帧进行发送;最后接收端在以模2除法方式除以前面选择的除数,如果没有余数,则说明数据帧在传输的过程中没有出错。

基于位运算的算法是非常慢的而且效率很低。因此,在实际使用中不推荐使用“计算法”来生成CRC校验码,而建议使用“查表法”来进行CRC校验码计算。

c语言crc校验,C语言crc校验程序-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

半查表法既计算又查表,表占用空间小,适合文件或者数据包校验;全查表法是标准查表法;双8位表全查表法表量大,查询方便,适合大文件校验。

因此,如果你的磁盘文件体积一般,建议使用全查表法,如果比较大如安装包,建议使用双8位表全查表法。

求CRC校验计算方法?

在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。  

c语言crc校验,C语言crc校验程序-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

CRC计算方法是:  

1、 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器。  

2、 把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该CRC寄存器中。  

3、 把CRC寄存器的内容右移一位,用0填补最高位,并检测移出位是0还是1。  4、 如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,CRC寄存器与0XA001进行异或。  

到此,以上就是小编对于c语言crc校验的问题就介绍到这了,希望介绍关于c语言crc校验的3点解答对大家有用

标签: 校验 crc 除数