约定除数 检查余数是否相同
用生成多项式给出除数
生成多项式的最高次幂给出校验位的位数
6+3个校验位再除以1101得出校验码 一定要保证余数为0
2.移位是计算机硬件的处理方式
减的话 直接对后三位竖着取异或
模2除
模2除的取商只看最高位 为1时商1 为0时商0
确定出校验码
这个余数值2 和出错位数2没有必然联系
第三位并不符合值为4 出错位为3
不是简单的二进制转十进制
但二者确实有对应关系
余数有3bit的信息 可以表示8种状态 000是正确的 剩下1~7种状态分别对应不同的余数
第八位 第九位出错时 余数又重新来了一遍
无法完全标注出9个位置 因为001可能是1出错位 或8出错位
但并不是循环冗余校验码没有纠错的能力 而是这个例子中信息位太长了
如果信息位只有4位
和上一个出错位和余数的对应并没有改变
只要生成多项式不变 无论信息位如何改变 余数和出错位对应的值都是一样的
如果没有超出表示范围 那么余数和出错位之间就是一一对应的关系
所以循环冗余校验码是有纠错功能的 只不过信息位的位数不能太多
那多少个才不算多
R个校验位就说明会得到R位的余数 可以表示2的R次方种状态 其中000表示正确(也就是式子中的+1)剩下的2的R次方-1种状态需要分别对应上K+R这么多位 每个位出现错误的情况需要一一对应 所以是大于等于 就有纠正1位错误的能力
实际使用中只会用来检错 不会纠错 但要知道它有纠错能力
简要了解
感受为什么叫循环