C++位運算(二進制)


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

        

                   

 


免責聲明!

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



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