模2除法

模2除法

模2除法,從字面上可理解為二進制下的除法。 模2除法與算術除法類似,但每一位除的結果不影響其它位,即不向上一位借位,所以實際上就是異或。在循環冗餘校驗碼(CRC)的計算中有套用到模2除法。

介紹

多位二進制模2除法也類似於普通意義上的多位二進制除法,但是在如何確定商的問題上兩者採用不同的規則。後者按帶借位的二進制除法,根 據餘數減除數夠減與否確定商1還是商0,若夠減則商1,否則商0。多位模2除法採用模2減法,不帶借位的二進制減法,因此考慮餘數夠減除數與否是沒有意義 的。實際上,在CRC運算中,總能保證除數的首位為1,則模2除法運算的商是由余數首位與除數首位的模2除法運算結果確定。因為除數首位總是1,按照模2 除法運算法則,那么餘數首位是1就商1,是0就商0。

在下面的示例中,當餘數位數與除數位數相同時,才進行異或運算,餘數首位是1,商就是1,餘數首位是0,商就是0。當已經除了幾位後,餘數位數小於除數,商0,餘數往右補一位,位數仍比除數少,則繼續商0,當餘數位數和除數位數一樣時,商1,進行異或運算,得新的餘數,以此至被除數最後一位。

實例分析

例1

:1111000除以1101:

模2除法 模2除法

例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

相關詞條

熱門詞條

聯絡我們