簡介
C/C++中的“按位或”
規則:
1|1=1
1|0=1
0|1=1
0|0=0
按位或運算 按位或運算符“|”是雙目運算符。其功能是參與運算的兩數各對應的二進位(也就是最後一位)相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。 例如:9|5可寫算式如下: 00001001|00000101 00001101 (十進制為13)可見9|5=13
main()
{
int a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
位運算
整數在計算機中用二進制的位來表示,C語言提供一些運算符可以直接操作整數中的位,稱為位運算,這些運算符的運算元都必須是整型的。
& 按位與, | 按位或 , ^ 按位異或
AND (位與&) OR ( 位或| ) XOR ( 位異或^ )
1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 0
1 & 0 = 0, 1 | 0 = 1, 1 ^ 0 = 1
0 & 1 = 0, 0 | 1 = 1, 0 ^ 1 = 1
0 & 0 = 0, 0 | 0 = 0, 0 ^ 0 = 0
豎式運算
按位或是位運算的一種,是將兩個數據的二進制表示右對齊後,按位進行運算,兩個對應的二進制位中只要一個是1,結果對應位就是1。
1 | 1 = 1 , 1 | 0 = 1 , 0 | 1 = 1 , 0 | 0 = 0
比如說十進制數5和3
5 | 3
先把它們換成二進制表示
101 , 011
按照剛才的規則:
1 0 1
| 0 1 1
--------
1 1 1
結果是二進制的111,也就是十進制的7。