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

        

                   

猜你喜欢

转载自www.cnblogs.com/lris-searching/p/9448145.html