例题
原始报文为 11001010101
,其生成多项式为 x^4 + x^3 + x + 1
对其进行CRC编码后的结果为?
第1步 从多项式中得到除数
我们按照 x^n + x^(n-1) +...+ x^0
的思路来算出除数
一般就是根据给出的多项式x最高位开始算起
本题中 x^4 + x^3 + x + 1
,最高位幂指数是 4 ,根据上面的思路可以知道
如果有则是1,没有该幂指数则是0,如下
公式 | x^4 | x^3 | x^2 | x^1 | x^0 |
---|---|---|---|---|---|
给出的多项式 | 有 | 有 | 无 | 有 | 有 |
值 | 1 | 1 | 0 | 1 | 1 |
所以可以得出,除数是 11011
第2步 从原始报文得到被除数
给原始报文的后面添加多项式最高位的个数的0
在本题中,多项式最高位是 4,所以原始报文后面加4个0
即除数 = 110010101010000
第3步 得到校验码位数
校验码位数 = 多项式X的最高次数
在本题中校验码就是4位数
第4步 相除得到结果
在这里即是,110010101010000除以11011
进行模 2 除法( 即忽略借位, 位与位之间是异或运算), 一直上1, 最终得出四位的余数, 就是 CRC 校验码
注意:最后得到的位数必然是校验码位数,不够的需要补0!!
这里得到的结果是11,但是需要凑位数,所以校验码 = 0011
第5步 得到原始报文的CRC编码
CRC编码 = 原始报文 后面补上 CRC校验码
11001010101
补上 0011
所以本题答案就是110010101010011