模2除法与长除法类似,但有个特点:不借位。说白了就是按位异或,相同为0,不同为1。
它有三个原则:
1、除数与被除数最高几位(与除数位数相同)做异或,商1。(除数首位必须为1)
2、余数先去掉首位,若此时余数最高位为1,商1,并对以它为除数继续模2除。
若最高位为0,则商0,重复步骤2。
3、直到余数位数小于除数位数时,运算结束。
举个栗子:
1111000 模2除1101
(1) 除数: 1111000
被除数: 1101
商: 1(除数首位为1)
余数: 0010000
余数右移一位做除数:
(2) 除数: 010000
被除数: 1101
商: 0(除数首位为0)
余数: 无
余数右移一位做除数:(没余数就把除数右移一位)
(3) 除数: 10000
被除数: 1101
商: 1
余数: 01010
余数右移一位做除数:
(4) 除数: 1010
被除数: 1101
商: 1
余数: 0111
最终结果:商1011 余数0111