上图为一个模2除法的逆向乘法竖式, 多余的 “001” 也包含在结果中,加法运算用没有进位的按位异或来代替。根据乘法的计算过程,可以思考除法过程,依据 “1101” 和 “101001000” 来获得商和余数。通过观察可以看到,“101001000” 的最高位只受一个数的影响,也就是最后一行的 “1101” 的最高位,此时,我们将 “101001000” 减去 “1101” 来消除 “1101” 的影响(实际做的是异或运算,异或运算和自身互为逆运算),同时我们可以得出商的最高位为1。
第一次计算结束后,结果的首位继续只受第二行的 “1101” 的影响,继续做一次异或运算。
此时,首位为0,不可能是 “1101” 的结果,只能是 “0000”,同时商0.
计算到这时,产生了一个多余的 “001” ,不可能再分解。我们需要将不能被 “1101” 除尽的 “101001000” 减去余数 “001”,将 “101001000” 和 “001” 做异或运算,于是得到可以被除尽的 “101001001”,获得校验结果。
总结
在模2运算中,“1101” 的倍数,就是将若干各 “1101”,经过不同的左移,并按位异或所产生的结果。