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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值