異或的疑惑

來源:互聯網
上載者:User

標籤:

異或的疑惑

異或,XOR,當兩數值相同為否,而數值不同時為真。

異或,有人叫半加、數學系的叫按位模2加

交換律:a ^ b = b ^ a;

結合律:a ^ ( b ^ c ) = ( a ^ b ) ^ c

恒等律:a ^ 0 = a

歸零律:a ^ a = 0

自反律:a ^ b ^ b = a ^ 0 = a

 

模2運算

模2運算是一種二進制演算法,與四則運算相同,模2運算也包括模2加、模2減、模2乘、模2除四種二進制運算。而且,模2運算也使用與四則運算相同的運算子,即“+”表示模2加,“-”表示模2減,“×”或“·”表示模2乘,“÷”或“/”表示模2除。與四則運算不同的是模2運算不考慮進位和借位,即模2加法是不帶進位的二進制加法運算,模2減法是不帶借位的二進制減法運算。這樣,兩個二進制位相運算時,這兩個位的值就能確定運算結果,不受前一次運算的影響,也不對下一次造成影響。

 

①模2加法運算定義為:

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

例如0101+0011=0110,列豎式計算:

  0 1 0 1

+0 0 1 1

──────

  0 1 1 0

 

②模2減法運算定義為:

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

例如0110-0011=0101,列豎式計算:

   0 1 1 0

- 0 0 1 1

──────

   0 1 0 1

 

③模2乘法運算定義為:

0×0=0        0×1=0        1×0=0        1×1=1

多位二進制模2乘法類似於普通意義上的多位二進制乘法,不同之處在於後者累加中間結果(或稱部分積)時採用帶進位的加法,而模2乘法對中間結果的處理方式採用的是模2加法。例如1011×101=100111,列豎式計算:

       1 0 1 1

     ×  1 0 1

    ──────

       1 0 1 1

     0 0 0 0

+ 1 0 1 1

────────

   1 0 0 1 1 1

 

④模2除法運算定義為:

0÷0=?        0÷1=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,列豎式計算:

               1 1 1 0

       ────────

1 0 1 1〕1 1 0 0 1 0 0

      -1 0 1 1

      ──────

           1 1 1 1

        - 1 0 1 1

       ──────

             1 0 0 0

          - 1 0 1 1

         ──────

               0 1 1 0

            - 0 0 0 0

           ──────

                 1 1 0

 

模2除(按位除)

 

模2除做法與算術除法類似,但每一位除(減)的結果不影響其它位,即不向上一位借位。所以實際上就是異或。然後再移位移位做下一位的模2減。步驟如下:

 

a、用除數對被除數最高几位做模2減,沒有借位。

b、除數右移一位,若餘數最高位為1,商為1,並對餘數做模2減。若餘數最高位為0,商為0,除數繼續右移一位。

c、一直做到餘數的位元小於除數時,該餘數就是最終餘數。

 

暈!都是異或!疑惑!

 


異或的疑惑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.