C語言位運算

2022-08-15 06:30:15 字數 782 閱讀 1170

今天在做慕課的題時,發現自己位運算比較薄弱,一來是學的時候沒學紮實,二來平時也用的比較少,所以藉此機會好好研究一下。

c語言提供的位運算子列表:

運算子 含義 描述

& 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0

| 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1

^ 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1

~ 取反 ~是一元運算子,用來對乙個二進位制數按位取反,即將0變1,將1變0

<< 左移 用來將乙個數的各二進位制位全部左移n位,右補0

>> 右移 將乙個數的各二進位制位右移n位,移到右端的低位被捨棄,對於無符號數,高位補0

以上是c語言提供的所有位運算操作。其中只有~是一元運算子,其他都是二元運算子。這些運算之中,所生疏的就是^異或運算。

先貼一下異或的幾條性質:

1、交換律

2、結合律(即(a^b)^c == a^(b^c))

3、對於任何數x,都有x^x=0,x^0=x

4、自反性 a ^ b ^ b = a ^0 = a

通過異或交換兩個變數的值

a=a^b

b=a^b(實際上已經變成(a^b)^b,所以b就是原來a的值)

a=a^b(實際上已經變成(a^b)^a,所以a就是原來b的值)

任何數跟自己的異或都是零,跟零的異或都是自己。

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