当前位置:网站首页 > 技术博客 > 正文

crc校验是什么?crc16算法的步骤有哪些?



循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。

--百度百科

在数据通讯的过程中,难免会出现误码的现象。因此,CRC校验常常用来检测该数据包中的数据是否正确以及完整。

本文主要讲述三种CRC16校验的C语言实现方式,实际项目中可以根据相关需求任选一种

 
  
 
  
 
  
 
  

运行结果

bit: 35267
halfbyte: 35267
byte: 35267

三种算法在计算结果上是完全相同的

按位运算:运算效率相对较低,但是对内存需求较低,适用于程序空间苛刻但CRC计算速度要求不高的微控制系统。

按字节运算:运算效率较高,但是对内存需求也比较高,适用于程序空间较大且CRC计算速度要求较高的计算机或微控制系统。

半字节运算:属于按位运算与按字节运算的折中方案,相对而言,它的计算效率一般,对内存的需求也一般,适用于程序空间不太大且CRC计算速度又不可以太慢的微控制系统。

实际开发过程中,可以依据三种运算方式的特性,自行选择

 

  • 上一篇: 国产数据库前景分析
  • 下一篇: hashmap,treemap
  • 版权声明


    相关文章:

  • 国产数据库前景分析2026-01-24 17:30:00
  • api接口测试实例2026-01-24 17:30:00
  • 串口助手是上位机么2026-01-24 17:30:00
  • java不同版本的区别2026-01-24 17:30:00
  • 交叉验证的使用步骤2026-01-24 17:30:00
  • hashmap,treemap2026-01-24 17:30:00
  • python调用第三方接口获取数据2026-01-24 17:30:00
  • ftell函数的用法2026-01-24 17:30:00
  • jmap命令作用2026-01-24 17:30:00
  • linux安装opencv42026-01-24 17:30:00