二进制模2除法与二进制除法不同。
模2运算:加法不进位,减法不借位。

二进制除法:
带借位的二进制除法,根据余数减除数够减与否,确定商1还是商0,若够减则商1,否则商0。
二进制模2除法:
采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义 的。实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。
(1)一步步的计算方法:
(2)熟悉规则之后,比较简洁的方法
1、当余数位数与除数位数相同时,才进行异或运算,余数首位是1,商就是1,余数首位是0,商就是0。
2、当已经除了几位后,余数位数小于除数,商0,余数往右补一位,位数仍比除数少,则继续商0,当余数位数和除数位数一样时,商1,进行异或运算,得新的余数,以此至被除数最后一位。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205924.html原文链接:https://javaforall.net
