位元運算子(Bitwise operator)

位元運算子(Bitwise operator):
數位設計上有AND、OR、NOT、XOR與補數等運算,對應C語言的位元運算子,分別是AND(&)、OR(|)、NOT(!)、XOR(^)與補數(~)。

int temp1 = 0 & 0;   //結果為0
int temp2 = 0 & 1;   //結果為0
  
int temp3 = 0 | 0;   //結果為0
int temp4 = 0 | 1;   //結果為1

    
int temp6 = 0 ^ 0;   //結果為0
int temp7 = 0 ^ 1;   //結果為1
int temp8 = 1 ^ 0;   //結果為1
int temp9 = 1 ^ 1;   //結果為0


int temp10 = !0;     //結果為1
int temp11 = !1;     //結果為0

位元運算是各位置依序進行的,例如10010001與01000001作AND運算,結果為00000001;而補數運算是將所有的位元0變1,1變0,例如00000001經補數運算就會變為11111110 。

char num = 255;
int test = ~num; //test為0

char使用一個位元組,最大可儲存255的值,255的二進位表示法為11111111,經補數運算就是00000000,也就是0。