C語言中提供了位運算使得C語言能像匯編一樣直接編寫系統程序,
在一些內存比較嚴格的場合使用位運算能有效地節省內存;
C語言提供如下位運算:
& 位與 如果兩個相應的二進制位都為1,則該位的結果值為1,否則為0
| 位或 兩個相應的二進制位中只要有一個為1,該位的結果值為1
^ 位異或 若參加運算的兩個二進制位值相同則為0,否則為1
~ 位取反 用來對一個二進制數按位取反,即將0變1,將1變0
<< 左移 用來將一個數的各二進制位全部左移N位,右補0
>> 右移 將一個數的各二進制位右移N位,移到右端的低位被捨棄,對 於無符號數,高位補0
舉個例子:
[cpp]
#include<stdio.h>
int main()
{
short a1=521;
short a2=123;
short And,Or,Not,AndOr;
And=a1&a2;
Or=a1|a2;
Not=~a1;
AndOr=a1^a2;
printf("a1,a2位與是:%d\n",And);
printf("a1,a2位或是:%d\n",Or);
printf("a1,a2位取反是:%d\n",Not);
printf("a1,a2位異或是:%d\n",AndOr);
return 0;
}