c/C++二進制運算符


c/c++中常用的二進制運算符有六個.這里對這六個做簡單的介紹和應用舉例.

  1.  &  :  與 操作.作用於兩個二進制數,當然也可以對整型數據進行操作(當兩邊為整型數據會自動轉化為二進制數).二進制與用來對位進行置零或者復位.如果兩個值進行二進制與,只有當兩個對應的位都為1時結果位上為1(同1結果為1,有0結果為0),其他情況都為0.如下:

      01011001 & 00101001

      結果為:00001001

      2. | :或  操作.和1的與操作類似.用來合並值.只有當兩個對應位都為0,結果位為0(有1結果為1,同0 結果為0),其他情況都為1.例如:

      01011001 | 00101001

      結果為:01111001

      3. ^ :異或  操作.這個運算符當兩個值在某一位上相同時結果位為0,不同結果為1.如一個是1一個是0(相同為0 不同為1),結果位是1;兩個都為1或者0結果位是0;例如:

      01011001^00101001

      結果為:01110000

       4.~ :求補操作.這個運算符只對一個二進制數據進行操作,對該數每一位取反,(即1變為0,0變為1).例如:

    ~01011001

    結果為:10100110

  最后兩個為移位操作符.這兩個操作符用來對一個值中的位左移或右移某個特定數字的位數.">>"右移操作."<<"左移操作.        "<<"左移操作:向左移動n位,相當於原數乘以2的n次方;存在問題:左移可能改變一個數的正負;

            ">>"右移操作:向右移動n位,值等於原值除以2的n次方;

      例如:

    01011001>>2  01011001<<2

    結果為:0010110  01100100

 

     實用技能:

                 想要獲取一個數的最低位,讓這個數和1 進行&操作,都會得到這個數的最低位;例如:

        00000011010001  &  00000000000001  

   

       最終結論為:    1&單數結果為1        

                            1&雙數結果為0 

     

       

 


免責聲明!

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



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