模2除法(CRC冗余码计算)和二进制/十进制除法

17 篇文章 16 订阅 ¥9.90 ¥99.00

复习网络,不小心碰到差错控制的CRC冗余码计算,随便算了一下,发现自己算的不对,于是发现了一串知识,总结如下。主要就是CRC中用到的模2运算和二进制/十进制除法有别,前者是特殊的除法,甚至根本不是除法,就是异或。
CRC循环冗余检验:余数为0就没出错;不能确定哪几个比特出错了

发送方先把冗余码的位置放n个0,然后把整个数据(k+n)位作为一个数字,除以(用的是模2除法,很重要!!不是常规除法)一个事先准备好的除数p(n+1位),除下来的余数R就是n位的,这n位余数就作为发送方的CRC循环冗余码。

到了收方,就拿收到的数字除以相同的除数P(大概是协议规定好的P),余数为0就代表没出错

对每一帧都要校验一下

也不是100%会检测正确,也有概率检测的结果不对,冗余码的位数越大,结果才能越准确,检测错误的概率才会小

可以看到:

模2除法的每一位的计算是完全独立的,就是异或,根本没有什么进位借位的事儿
如果余数首位为1,则商为0,且

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello_world!

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值