C語言位運算

2021-09-13 14:14:32 字數 1152 閱讀 2516

**

位運算,說白了就是對二進位制數進行的操作。在c語言中,位運算經常被使用。今天為大家介紹一些位運算在c語言中的應用。

1、按位與(&)

參與運算的兩個數,轉換為二進位制後,進行「與」運算。

運算規則:0與任何數按位與都為0,1與任何數按位與都不變

0 & 0 = 0; 0 & 1 = 0; 1 & 0 = 0; 1 & 1 = 1;

2、按位或(|)

參與運算的兩個數,轉換為二進位制後,進行「或」運算。

運算規則:0與任何數按位或都不變,1與任何數按位或都為1

0 | 0 = 0; 0 | 1 = 1; 1 | 0 = 1; 1 | 1 = 1;

3、按位異或(^)

參與運算的兩個數,轉換為二進位制後,進行「異或」運算。

運算規則:參與運算的兩個二進位制數,若相應位不同,則為1,相應位相同,則為0

0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0;

4、按位左移(<<)

將參與運算的物件轉換位二進位制,將其全部左移若干位。(二進位制數左邊丟棄若干位,右邊補充若干位0)

5 << 2 = 00000000 00010100 = 20;

若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。

5、按位右移(>>)

將參與運算的物件轉換位二進位制,將其全部右移若干位。(二進位制數右邊丟棄若干位,正數左位補0,負數左位補1)

5 << 2 = 00000000 00000001 = 1;

運算元每右移一位,相當於該數除以2。

//將乙個位元組的二進位制數右數第n位置1

bool setbit(char* ch,int n)

*ch |= 1 << (n - 1);

return true;

}

//將乙個位元組的二進位制數右數第n位置0

bool setbit(char* ch,int n)

*ch &= ~(1 << (n - 1));

return true;

}

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,則該位...