模2除法
模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或。在循环冗余校验码(CRC)的计算中有应用到模2除法。
例:1111000除以1101:
【例2】被校验的数据M(x)=1000,其选择生成多项式为G(x)=x3+x+1,该数据的循环冗余校验码应为多少?
G(x)=x3+x+1对应的二进制数为1011,且G(x)中含3个项式,所以1000B*2^3=1000 000B;
1000 000B(被除数)对1011(除数)做模2除法,得到的余数便是101B,所以所求的该数据的循环冗余校验码应为1000 000B+101B=1000101B。
想知道模2除法,只需要知道什么是异或运算就很容易算出。
计算机中,异或逻辑表示为:
真^假=真
假^真=真
假^假=假
真^真=假
或者
1^1=0
0^0=0
1^0=1
0^1=1
计算机语言用1表示真,用0表示假,所以两个字节按位异或如下
例如00000000 异或 00000000 = 00000000
11111111 异或 00000000 = 11111111
00000000 异或 11111111 = 11111111
11111111 异或 11111111 = 00000000
00001111 异或 11111111 = 11110000