模2除法
关于一个二进制数1111000 除以1101,模2除法的商为1011,余数为111.这个结果不同于十进制除法。所以特记下。具体步骤如下:
-
- 1111000
- 1101
- 0010000 ----余数,商为1,只要第一位非0商就是1
-
- 010000
- 0000
- 010000 ----余数,商为0,只要第一位是0商就是0
-
- 10000
- 1101
- 01010 -----余数,商为1,这里的余数你猜出,其实就是对应位异或
-
- 1010
- 1101
- 0111 ------余数,商为1,如果位数比除数还小,不再继续运算
-
所以在商上1的时候,不要考虑够不够减(因为这里不是二进制的除法),只要最高位是1,位数凑够了就商1模2除法可以用在CRC冗余校验上。K,H均为2进制数,K向左移R,然后K除以H。模2除得到的余数在放到R位中。例如:K=1111,H=1101,R=3,移位之后得1111000,最后CRC=1111111。