$:按位與 |:按位或 ~:取反 ^:按位異或
按位異或可以實現兩個變數值的交換,但是並不推薦。(a ^= b;b ^= a ;a ^= b;).
<<、>>都是雙目運算子,
「<<」將二進位制向左移動指定位,高位丟棄,低位補0.
「>>」當為負數時,根據編譯系統的規定補0,或者1.
例:0x01<<2+3 = ?
這裡要考慮運算子的優先順序。+ 的優先順序大於<< 的優先順序,所以0x01<<5 = 32.
同時也要注意,若:0x01<<2+30;0x01>>-1;這就不行,因為乙個整形長度為32,左移32位會造成溢位的。還有右移乙個負數,當然不會是反過來移,所以:左移右移的位數都不能大於資料的長度,同時也要大於0.
//例1
int i = 3;
int x = (++i) + (++i) + (++i)+(++i);
printf("x = %d\n", x);
//例2
int i = 1;
int j = (i++)+ (i++)+(i++);
printf("j = %d\n", j);
例1:在vs2013驗證結果為18,分析:()的優先順序大於+的優先順序 所以先經過4次++i之後,i的值為7,然後在執行7+7+7+7 = 28;
例2:在遇到「,」,「;」時認為本計算單位已經結束,才進行自加,j = 3。
位運算操作符
與運算,二元操作符,對兩個操作員的每個二進位制位進行與運算,運算規則為 1 1 1 1 0 0 0 1 0 0 0 0 異或運算,二元操作符,對兩個操作員的每個二進位制位進行異或運算,運算規則為 1 1 0 1 0 1 0 1 1 0 0 0 或運算,二元操作符,對兩個操作員的每個二進位制位或運算,...
位操作運算子
1.按位與運算子 按位與運算子 是雙目運算子。其功能是參與運算的兩個數字對應的二進位制位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。例如,9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 00000001 1的二進...
運算子以及操作符大全
c的運算子有以下幾類 1.算術運算子 2.關係運算子 3.邏輯運算子 4.位運算子 5.賦值運算子 及擴充套件賦值運算子 6.條件運算子 7.逗號運算子 8.指標運算子 和 9.求位元組數運算子 sizeof 10.強制型別轉換 運算子 型別 11.分量運算子 12.下標 運算子 13.其他 如 函...