優先順序從高到低,依次為~、&、^、|
運算子(&)
操作 0&0=0; 0&1=0; 1&0=0; 1&1=1
只要有乙個為0,其值為0。
例子:10&9: 0000 1010 & 0000 1001 = 0000 1000 = 8
運算子(|)
** 操作0|0=0; 0|1=1; 1|0=1; 1|1=1
只要有乙個為1,其值為1。**
例子:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。
運算子(^)
操作0^0=0; 0^1=1; 1^0=1; 1^1=0
如果兩個相應位為「異」(值不同),則該位結果為1,否則為0。
例子:10^9 即 0000 1010 ^ 0000 1001= 0000 0011 即10^9 = 3。
「異或運算」的特殊作用:
(1)使特定位翻轉 找乙個數,對應x要翻轉的各位,該數的對應位為1,其餘位為零,此數與x對應位異或即可。
例:x=10101110,使x低4位翻轉,用x ^ 0000 1111 = 1010 0001即可得到。
(2)與0相異或,保留原值 ,x ^ 0000 0000 = 1010 1110。
(3)交換a和b
方法一方法二
方法三1.a=a^b
1.a= a-b
1.c=a
2.b=b^a
2.b= a+b
2.a=b
3.a=a^b
3.a= b-a
3.b=c
運算子(~)
~1=0; ~0=1;
即:對乙個二進位制數按位取反,即將0變1,1變0。
例子:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。
「按位取反」的特殊作用:使乙個數的最低位為零,可以表示為:a&1。1的值為1111111111111110,再按「與」運算,最低位一定為0。引用
按位與 按位異或 按位取反
按位與 按位或 按位異或 1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 0000...
詳解「 按位與 按位或 按位異或」
按位與 按位或 按位異或 1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 0000...
2019 9 02 按位或,按位與, 按位異或
a b a a b a 或者 b 只要有乙個為 1,那麼,a 的最終結果就為 1 a b a a b a 和 b 二者必須都為 1,那麼,a 的最終結果才為 1 a b a a b 當且僅當 a 和 b 的值不一致時,a 的最終結果才為1,否則為0 計算時,先把其化為二進位制數 如 5 0101 3...