模2加减法
需要先了解模2加减法,究其根本其实是按位进行异或操作。
模2加减法
(按位异或操作,相同则0,不同则1)
0 ± 0 = 0
1 ± 1 = 0
0 ± 1 = 1
1 ± 0 = 1
例子:1011 ± 1000
计算过程:
1 0 1 1
± 1 0 0 0
------------
0 0 1 1
结果:1011 ± 1000 = 0011
模2除法
跟普通除法类似,但是
每次步骤的余数
第一位为1的话商写1并用除数继续除
第一位为0的话商写0并用0继续除直到余数位数比除数要少为止。
例子:1111000对除数1101做模2除法:
1 0 1 1 // 商
------------------------
1101 | 1 1 1 1 0 0 0 // 被除数,因为首位为1,所以商第一位写1
/ 1 1 0 1 // 除数,因为被除数首位为1,所以用除数进行除
-----------------------
0 1 0 0 // 被除数,从上面进行模2加减法得到的
0 0 0 0 // 因为被除数首位为0,所以商第二位写0,并用0进行除
-----------------------
1 0 0 0 // 被除数,从上面进行模2加减法得到的
1 1 0 1 // 除数,因为被除数首位为1,所以用除数进行除
-----------------------
1 0 1 0 // 被除数,从上面进行模2加减法得到的
1 1 0 1 // 除数,因为被除数首位为1,所以用除数进行除
-----------------------
1 1 1 // 余数
CRC校验码
原始报文为:11001010101,期生成多项式为X^4+X^3+X+1,对其进行CRC编码结果为
多项式转为二进制:X^4代表第五位为1,X^3代表第四位为1,X^2没有代表为0,X代码第二位为1,第一位为1;多项式二进制为:11011
计算CRC编码:在原始报文后面加上【多项式长度-1】个0后进行模2除法,然后用余数替换原始报文后加上的0
110010101010000 / 11011 余 0011
11001010101的CRC编码为110010101010011
转: