模2除法,從字面上可理解為二進制下的除法。
模2除法與算術除法類似,但每一位除的結果不影響其它位,即不向上一位借位,所以實際上就是異或。在循環冗餘校驗碼(CRC)的計算中有套用到模2除法。
基本介紹
- 中文名:模2除法
- 套用:網路傳輸、計算機
- 功能:循環冗餘校驗碼(CRC)的計算
- 實質:異或
介紹,實例分析,例1,例2,具體說明,與普通除法的區別,
介紹
多位二進制模2除法也類似於普通意義上的多位二進制除法,但是在如何確定商的問題上兩者採用不同的規則。後者按帶借位的二進制除法,根 據餘數減除數夠減與否確定商1還是商0,若夠減則商1,否則商0。多位模2除法採用模2減法,不帶借位的二進制減法,因此考慮餘數夠減除數與否是沒有意義 的。實際上,在CRC運算中,總能保證除數的首位為1,則模2除法運算的商是由余數首位與除數首位的模2除法運算結果確定。因為除數首位總是1,按照模2 除法運算法則,那么餘數首位是1就商1,是0就商0。
模2除法它既不向上位借位,也不比較除數和被除數的相同位數值的大小,只要以相同位數進行相除即可。模2加法運算為:1+1=0,0+1=1,0+0=0,無進位,也無借位;模2減法運算為:1-1=0,0-1=1,1-0=1,0-0=0,也無進位,無借位。相當於二進制中的邏輯異或運算。也就是比較後,兩者對應位相同則結果為“0”,不同則結果為“1”。如100101除以1110,結果得到商為110,餘數為1。
在下面的示例中,當餘數位數與除數位數相同時,才進行異或運算,餘數首位是1,商就是1,餘數首位是0,商就是0。當已經除了幾位後,餘數位數小於除數,商0,餘數往右補一位,位數仍比除數少,則繼續商0,當餘數位數和除數位數一樣時,商1,進行異或運算,得新的餘數,以此至被除數最後一位。
實例分析
例1
1111000除以1101:
例2
被校驗的數據M(x)=1000,其選擇生成多項式為G(x)=x^3+x+1,該數據的循環冗餘校驗和應為多少?
G(x)=x^3+x+1對應的二進制數為1011,且G(x)中含3個項式,生成多項式為4位二進制,由CRC規則應該取(4-1)=3位(校驗和),所以可以預加上3位得到1000B*2^3=1000 000B;
1000 000B(被除數)對1011(除數)做模2除法,得到的餘數便是101B(即CRC校驗和),所以該數據的循環冗餘校驗後的數據應為1000 B+101B=1000101B。
具體說明
想知道模2除法,只需要知道什麼是異或運算就很容易算出。
計算機中,異或邏輯表示為: (記憶方法:同為0異為1)
1^1=0
0^0=0
1^0=1
0^1=1
與普通除法的區別
模2除法與普通除法不同,它不向上位借位。對比如下圖所示: