CRC校验原理

 

上图为一个模2除法的逆向乘法竖式, 多余的 “001” 也包含在结果中,加法运算用没有进位的按位异或来代替。根据乘法的计算过程,可以思考除法过程,依据 “1101” 和 “101001000” 来获得商和余数。通过观察可以看到,“101001000” 的最高位只受一个数的影响,也就是最后一行的 “1101” 的最高位,此时,我们将 “101001000” 减去 “1101” 来消除 “1101” 的影响(实际做的是异或运算,异或运算和自身互为逆运算),同时我们可以得出商的最高位为1。

 第一次计算结束后,结果的首位继续只受第二行的 “1101” 的影响,继续做一次异或运算。

 

 此时,首位为0,不可能是 “1101” 的结果,只能是 “0000”,同时商0.

 计算到这时,产生了一个多余的 “001” ,不可能再分解。我们需要将不能被 “1101” 除尽的 “101001000” 减去余数 “001”,将 “101001000” 和 “001” 做异或运算,于是得到可以被除尽的 “101001001”,获得校验结果。

总结

在模2运算中,“1101” 的倍数,就是将若干各 “1101”,经过不同的左移,并按位异或所产生的结果。

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值