C语言 模2除法

C语言中的模2除法:
模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。所以实际上就是异或。然后再移位移位做下一位的模2减。
步骤如下:
a、用除数对被除数最高n位做模2减,没有借位。
    (模2减规则:000 011 101 110)

b、除数右移一位,若余数最高位为1,商为1,并对余数做模2减。若余数最高位为0,商为0,除数继续右移一位。

c、一直做到余数的位数小于除数时,该余数就是最终余数。
举例:
1.  1100100÷1011 = 1110.....110
         1011
         ————————
    1011|1100100
         1011
         ————
         01111
          1011
          ————
          01000
           1011
           ————
           00110
           
2.  1111000÷1101 = 1011.....111
         1011
         ————————
    1101|1111000
         1101
         ————
         00100
          0000
          ————
          01000
           1101
           ————
           01010
            1101
            ————
            0111

用于实现CRC校验算法。

种树最好的时间是十年前,其次是现在。
原文地址:https://www.cnblogs.com/bobojiang/p/7445220.html