C++位元運算(二進位)

來源:互聯網
上載者:User

標籤:二進位   ext   左移   時間複雜度   時間   amp   異或   運用   優先   

C++位元運算

     ——二進位下進行計算(按運算優先順序介紹)

引言:我們都知道,電腦的所有操作實際上都是在二進位下進行的,因此,在二進位條件下進行的位元運算的速度實際是很快的,在編程中運用適當位元運算可以降低程式的時間複雜度。

~取反 : ~x,表示將x的各位取反,即 ~1=0,~1=0。

>> 右移  :x>>p,表示將x右移p位,即可以理解為將二進位下的數x右邊p位捨去。例:(2)10>>1=(10)2>> 1  ==》 (1)2=(1)10;(15)10>>2=(1111)2>>2 ==》(11)2=(3)10

<<左移  :x<<p,表示將x左移p位,即可以理解為將二進位下的數x右邊補p個0。例:(1)10<<1=(1)2<<1 ==》 (10)2=(2)10 ; (3)10<<3=(11)2<<3 ==》 (11000)2=(24)10

& 按位與 :x&p,表示x與p在二進位下進行與運算,法則為:1&1=1, 1&0=0, 0&0=0,x的每一位與p的每一位按這個規則進行運算得出結果。

 例: 2&3  ==>    10          ,即結果為2

                      &   11      

                           10

^ 按位異或 :x^p,表示x與p在二進位下進行異或運算,法則為:1^1=0,1^0=1,0^0=0,x的每一位與p的每一位按這個規則運算得出結果。

例:2&4 ==》   010            ,即結果為6

                   ^    100     

                         110

|按位或 : x|p,表示x與p在二進位下進行或運算,法則為: 1|1=1,1|0=1,0|0=0,x的每一位與p的每一位按這個規則運算出結果。

例: 2|4==》  010           ,即結果為6

                      |  100   

                            110

        

                   

 

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.