CRC校验原理与计算

CRC是一种用于数据传输错误检测的校验方法。通过预定义的生成多项式与信息码进行模2除法,计算出校验码。常用生成多项式如CRC-16、CCITT-16。计算步骤包括左移信息码、模2除法得到校验码,最后将校验码添加到信息码末尾。在接收端,通过同样生成多项式检查数据的完整性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CRC,(Cyclic Redundancy Check),循环冗余校验。


1,CRC的原理

CRC校验的原理在很多地方写的都比较详细,也比较复杂,但其本质就是一种校验码的计算方法。收、发双方在通信之前要约定好一个多项式(介绍原理的地方也叫做生成多项式,其实就是一串二进制码,关于多项式跟二进制码的对应关系可以参考附录1),通过信息码跟生成多项式做“模2除法”就能计算出校验码,当然,校验码的位数也是由生成多项式决定的(校验码位数=生成多项式对应二进制串位数-1)。


常用的生成多项式有:IBM的SDLC(同步数据链路控制)规程中使用的CRC-16,生成多项式g(x)= x16 + x15 + x2 +1(对应二进制比特串为:11000000000000101);而在ISO HDLC(高级数据链路控制)规程、ITU的SDLC、X.25、V.34、V.41、V.42等中使用CCITT-16生成多项式g(x)= x16 + x15 + x5 +1(对应二进制比特串为:11000000000100001)。


“模2除法”跟“算术除法”不同,它既不向上位借位,也不比较除数和被除数的相同位数值的大小,只是以相同位数做逻辑异或运算。模2加法运算为:1+1=0,0+1=1,0+0=0,无进位,也无借位;模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0,也无进位,无借位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值