通过十进制类比理解CRC的编码和解码方法

在这里插入图片描述
在这里插入图片描述

类比思路

  • 收发双方约定,被“3”整除。这里的“3”,就类似CRC编码里的生成多项式。
  • 发送方发送数字“23”。这里的“23”,就对应原本要发送的数据。
  • 23/3=7+2.将23改成21发送。十进制没有在后面补0这项操作,而是直接对原数据进行修改,这就注定了在没有额外约定的情况下,接收方虽然能检错,但是却还原不出原始信息。
  • 为了不污染原始数据,CRC编码采取在数据末尾增加r位的方式,即保留原始数据信息(前k位),又为冗余位制造出了空间(后r位)。
  • XrM(X) = k位数据 + r位“0”,除以生成多项式G(X),得到的余式R(X)就像例子里的“2”,需要被减掉。
  • 我们知道在不进位的二进制运算(异或运算)中,加法和减法其实效果是一样的。所以XrM(X) + R(X) 和 XrM(X) - R(X),得到的结果是一样的,并且都能被G(X)整除。
  • 所以如果收方收到的是正确的 XrM(X) + R(X) 或 XrM(X) - R(X) 的话,就一定能够被G(X)整除的~
发布了26 篇原创文章 · 获赞 32 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Clover_pofu/article/details/104850240