位運算子 操作符

2021-08-22 19:16:18 字數 718 閱讀 5795

$:按位與    |:按位或    ~:取反    ^:按位異或

按位異或可以實現兩個變數值的交換,但是並不推薦。(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.其他 如 函...