原理解释
原理是找出一个能整除多项式的编码(即校验码),最终发送的数据由两部分组成,原始数据+校验码。校验码越长检验错误的能力越强,只能校验错误,无法纠正错误。
生成多项式的概念
类型为无系数的一元多次方程,例如,将其转换为二级制编码才能进行计算,转换的规则是:依次从低位到高位依次写出方程中未知数的n次幂的有无情况,有的记为'1',没有的记为'0',上面的多项式就可以转换为1011,如表格所示。
3次幂 | 2次幂 | 1次幂 | 0次幂 | |
多项式 | ||||
编码 | 1 | 0 | 1 | 1 |
再例如,转换编码为101010。
校验码计算步骤
假设有n位原始数据,生成多项式为k位,首先将n位原始数据左移k-1位,然后用得到的数据与生成多项式进行模2运算(也可以用抑或运算代替),最终得到的k-1位余数即为校验码。将其加在原始数据的后面产生要发送的数据。接收方收到数据后判断能否整除生成多项式,若能整除则数据正确,不能整除则数据错误。
例:原始数据为111000110,生成多项式为(即编码101011),首先将原始数据左移5位,然后除以生成多项式的编码,进行模2运算(不产生借位和进位),计算所得余数为5位的11001。将其添加到原始数据之后,所以发送的数据为11100011011001。下图为计算过程。