c語言中的位運算有六個:按位與(&),按位或(|),按位異或(^),取反(~),左移(<<),右移(>>)。除~以外其餘均為二元運算子,即要求運算子兩側均有乙個運算量;位運算量只能為整型或字元型,不能為實型資料。
1.按位與&
0&0=0 0&1=0 1&0=0 1&1=1;
3&5=(00000011)&(00000101)=00000001=1
&的特殊用途有以下:
(1)清零。如原有數00101011,則另找一數(不一定唯一)10010100與原來的數進行&運算即得結果0。
(2)取乙個數中某些指定的位。
(3)保留某些位數。
2.按位或|
0|0=0 0|1=1 1|0=1 1|1=1
例如求067|017
將八進位制數60與八進位制數17進行按位或運算得00110000|00001111=00111111.
3.按位異或^
0^0=0 0^1=1 1^0=1 1^1=0
按位異或有以下用途:
(1)使特定位翻轉,只需取好值即可。
(2)與0相^保留原值。
(3)交換兩個值而不必採用臨時變數。交換a和b:a=a^b;b=b^a;a=a^b。
4.取反~
使各位0變為1,變為0
5.左移<<
左移比乘法運算快得多,有些系統自動將乘以2用左移一位來實現。
6.右移》
a>>2表示將a的各位右移2位。
C語言中的位運算
0 推薦 在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種...
C語言中的位運算
在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種位運算子 ...
C語言中的位運算
在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功能,這使得c語言也能像組合語言一樣用來編寫系統程式。c語言中的位運算 在電腦程式中,資...