模二除


今天看CRC校驗,看到了模二除,在這里把相關的“模二和”、“模二除”、“模二減”來總結一下:

1、模二和的運算法則是:

0+0=0 0 + 1 = 1    1+ 0 = 1     1+ 1 = 0

理解:兩個二進制數相加不考慮進位,例如01 + 11 = 10,對於兩個數的低位都是1,進行模二和為0,

但是沒有進位,所以高位的0 加1 還是1,因為不考慮低位的進位。

2、模二減的運算法則:

0 - 0 = 0    0 - 1 = 1    1 - 0 = 1     1 - 1  = 0

例: 1 0 1 0

-      0 1 1 0

---------------------

   1 1 0 0        

上式的減法中,第三位的減法中0-1,如果按照二進制的減法是有借位的,但是對於模二減是沒有借位的,

所以才會有第四位中的1-0仍然為1。

3、模二乘的運算法則:

0  *  0 = 0      0 * 1 =  0      1 * 0  =  0        1  *  1  = 1

例如:    1 0 1 1

    X    1 1 1

---------------

       1 0 1 1

     1 0 1 1

   1 0 1 1

-------------------

   1 1 0 0 0 1

模二乘與一般二進制乘法的區別是在於下面的加法部分,模二乘的加法部分依然是模二加的法則

4、模二除運算法則:

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

     

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM