——二进制下进行计算(按运算优先级介绍)
引言:我们都知道,计算机的所有操作实际上都是在二进制下进行的,因此,在二进制条件下进行的位运算的速度实际是很快的,在编程中运用适当位运算可以降低程序的时间复杂度。
~取反 : ~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