模2除法(CRC检验码)

2019-04-13 11:55发布

关于一个二进制数1111000 除以1101,模2除法的商为1011,余数为111.这个结果不同于十进制除法。所以特记下。具体步骤如下:
  1. #第一步  
  2. 1111000  
  3. 1101  
  4. 0010000 ----余数,商为1,只要第一位非0商就是1  
  5. #第二步,每步移一位,当起始位为0时,除以0;为1时除以除数。  
  6. 010000  
  7. 0000  
  8. 010000  ----余数,商为0,只要第一位是0商就是0  
  9. #第三步  
  10. 10000  
  11. 1101  
  12. 01010  -----余数,商为1,这里的余数你猜出,其实就是对应位异或  
  13. #第四步  
  14. 1010  
  15. 1101  
  16. 0111   ------余数,商为1,如果位数比除数还小,不再继续运算  
  17. #最终余数为111,商为1011  
模2除法可以用在CRC冗余校验上。K,H均为2进制数,K向左移R,然后K除以H。模2除得到的余数在放到R位中。例如:K=1111,H=1101,R=3,移位之后得1111000,最后CRC=1111111。
CRC校验码还有一种方法:例题:采用CRC进行差错校验,生成多项式为G(X)=X4+X+1,信息码字为10110,则计算出的CRC校验码是()解析:G(x)=X4+X+1对应的二进制序列为10011,下面进行“按位异或”运算: