按位的與&
若x的第i位和y的第i位都是1,那么(x&y)=1,否則(x&y)
?= 0
應用:希望讓某一位或某些位為0 。取一個數中的一段。
按位的或|
若x的第i位==1或y的第i位==1,那么(x | y)=1,否則(x | y)
?= 0
應用:使得某位或某幾位為1。把兩個數拼起來。
按位取反~
1變0,0變1。%hhx表示輸出char
char c=0xAA;printf("~c=%hhx\n", (char)~c);
按位的異或^
如果兩位相等,為0;不相等,為1。
<<左移
i<<j表示i中所有的位向左移動j個位置,而右邊填入0.
所有<int的類型,移位以int的方式來做,結果是int
>>右移
i>>j表示i中所有的位向右移j位。
所有<int的類型,移位以int的方式來做,結果是int。
對于unsighed的類型,左邊你填0;對于signed類型,左邊填入原來的最高位(保持符號不變)。