C語言位運算

2021-10-17 11:18:20 字數 1100 閱讀 4938

1.位運算作用於位,並逐位進行操作(二進位制展開)。

2.位運算子有:|,&,^,~,<>。//例子裡的0和1是二進位制裡的0和1

3.按位或運算子:|。例如:1|1=1; 0|0=0; 1|0=1;

4.按位與運算子:&。例如:0&0=0; 1&1=1; 1&0=0;

5.異或運算子:。例如:0 ^ 0=0; 1^1=0; 1^0=1;

6.取反運算子:~。對該數的二進位制數進行取反操作,1變0,0變1.

所有正整數的按位取反是其本身+1的負數

所有負整數的按位取反是其本身+1的絕對值

零的按位取反是 -1

7.二進位制左移運算子:<

8.二進位制右移運算子:>>。將乙個運算物件的各二進位制(補碼)右移若干位(正數左邊補0,右邊丟棄;負數:左邊補1,然後按位取反再加1)。

9.正數的左移與右移,負數的無符號右移,就是相應的補碼移位所得,在高位補0即可。負數的右移,就是補碼高位補1,然後按位取反再加1即可。

10.位運算子的運算元必須是整數型別,並且遵循尋常算術轉換

11.也可以使用運算子 |和 ^來設定或清除特定位。

例如:int mask = oxc;

a |= mask; // 設定a的位2和位3

a ^= mask; // 求反a的位2和位3

12.b^ mask^mask 會得到原來 b 的值。這個操作可以用於交換兩個整數的值,而不需要使用第三個臨時變數。

例如:a ^= b; // 等效於 a = a ^ b;

b ^= a; // 將a原來的值賦值給b

a ^= b; // 將b原來的值賦值給a

前兩個表示式等同於 b=b(ab)或 b=(ab)b,其結果等同於 b=a。

c語言位運算

c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對乙個二進位制數按位取反,即將0變1...

C語言位運算

c語言位運算 位運算應用口訣 清零取反要用與,某位置一可用或 若要取反和交換,輕輕鬆鬆用異或 移位運算 1 它們都是雙目運算子,兩個運算分量都是整形,結果也是整形。2 am p 3 amp amp amp qu ot 右 移 右邊 的位被擠 掉。對於 左邊移出 的空位,如果是正 數則空位 補0,若 ...

C語言位運算

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...