CRC校验码-----验证数据完整性

计算一串数据的CRC校验码、验证携带CRC校验码的数据的完整性,C语言源码:(8位)
地址:http://download.csdn.net/download/aaron133/10247767
【1】CRC校验码的介绍:

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

【2】首先需要了解CRC校验中使用到的模2除法:

这里写图片描述

这里写图片描述

模二除法计算出来的余数就是所谓的CRC校验码

【3】使用CRC校验码,验证数据的完整性
  1. 发送方与接收方指定一个相同的除数(最高位与最低位必须为1)
  2. 除数二进制位数,然后再要发送的数据帧上面加上这个位数-1位的0,然后用新生成的帧以模2除法的方式除上面的除数得到的余数就是该帧的CRC校验码
  3. 注意,余数的位数一定只比除数位数少一位,也就是CRC校验码位数比除数位数少一位,如果前面位是0也不能省略。
  4. 将计算出来的CRC校验码附加在原数据帧(也就是覆盖那几个尾部增加的0)后面,构建成一个新的数据帧进行发送;最后接收方在以模2除法除相同的除数,如果没有余数,则说明数据帧在传输的过程中没有出错。
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值