操作符
用法描述
按位與
a & b
如果兩個運算元對應位都是 1 的話則在該位返回 1。
按位或
a | b
如果兩個運算元對應位都是 0 的話則在該位返回 0。
按位異或
a ^ b
如果兩個運算元對應位只有乙個 1 的話則在該位返回 1。
求反 ~ a
反轉運算元的每一位。
左移a << b
將 a 的二進位制形式左移 b 位。右面的空位補零。
算術右移
a >> b
將 a 的二進位制形式右移 b 位。忽略被移出的位。
邏輯右移
a >>> b
將 a 的二進位制形式右移 b 位。忽略被移出的位,左側補入 0。
二元位操作符
包括&,|,^三種,舉例如下:
15 & 9 結果為 9 (1111 & 1001 = 1001)
15 | 9 為 15 (1111 | 1001 = 1111)
15 ^ 9 為 6 (1111 ^ 1001 = 0110)
移位操作符
移位操作符需要兩個運算元:第乙個是要進行移位的數值,第二個指定要對第乙個數移位的數目。移位的方向由使用的操作符決定。
移位操作符將把兩個操作符轉換為 32 位整型數值,並返回與左運算元型別相同的結果。
<< (左移)
該操作符將把第乙個運算元向左移若干位。移出的位將被忽略。右側空位補零。
例如,9<<2 結果為 36,因為 1001 向左移兩位變成 100100,這是 36。
>> (算術右移)
該操作符將把第乙個運算元享有移若干位。移出的位將被忽略。左側的空位補上與原來最左面位相同的值。
例如,9>>2 結果為 2,因為 1001 右移兩位變成 10,這是 2。反之,-9>>2 結果為 -3,因為要考慮到符號位。
>>> (邏輯右移)
該操作符將把第乙個運算元享有移若干位。移出的位將被忽略。左側的空位補零。
例如,19>>>2 結果為 4,因為 10011 右移兩位變成 100,這是 4。對於非負數,算術右移和邏輯右移結果相同。
特別要注意
邏輯右移和
算術右移的區別
c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...
位運算操作符
與運算,二元操作符,對兩個操作員的每個二進位制位進行與運算,運算規則為 1 1 1 1 0 0 0 1 0 0 0 0 異或運算,二元操作符,對兩個操作員的每個二進位制位進行異或運算,運算規則為 1 1 0 1 0 1 0 1 1 0 0 0 或運算,二元操作符,對兩個操作員的每個二進位制位或運算,...
c 位操作符
我們知道,任何資訊在計算機中都是以二進位制的形式儲存的。位操作符就是對資料按二進位制進行運算的操作符。c 語言中的位操作符有 與 或 異或 取補 左移 右移 其中,取補只有乙個運算元,而其它的位操作符都有兩個運算元。這些運算都不會產生溢位。位操作符的運算元為整型或者是可以轉換為整型的任何其它型別。與...