c語言位運算有什麼作用?

2021-07-03 15:35:24 字數 1322 閱讀 1712

c中的位運算可以對整形int 或字元型char 進行二進位制按位運算

& 是對兩個二進位制數進行 與運算

| .....................或運算

^ .....................異或運算

~ 是單目運算,對乙個二進位制數取反

<< 是對乙個二進位制數進行左移運算

>>.....................右移運算

c語言中提供給開發人員一種位的運算,這種位的運算常用在檢測和控制領域中,這和c語言的特性關係非常大,因為c語言是具有高階語言的特點和低階語言的功能,能完成一些組合語言所能完成的功能。給開發人員提供了一定的簡便。 

【運算子】位運算中有6中運算子【&,|,^,~,<<,>>】分別是按位與,按位或,按位異或,取反,左移,右移。

其中除了~,其他都是二目元,而且在運算中的運算量只能是整形或者是字元型,絕對不能有實型出現。 當然在運算中,所有的運算量都應該是binary.

下面分別來比較各種運算子:

【一】:按位與「&」,當二個運算量中相應的二進位制位都為1的時候,則該位才是1,否則其他就是0;

【二】:按位或「|」,當二個運算量中相應的二進位制位為1的時候,則該位運算結果是1,否則其他就是0; 

【三】:按位異或「^」,該運算也稱xor運算子,二個二進位制位同號,該位運算的結果則是0,異號則為1;

1:使特定的位翻轉 2:與0相^,保留原值 3:交換兩個值,不用臨時變數

【四】:「取反」運算子「~」,是乙個單目元,用來對乙個二進位制數按位取反,對任何乙個數應該先轉化位二進位制,再進行取反;這裡值得一提的是取反的法則,

就是將資料中的某位中的1變成0,0變成1,但是應該注意一點是將c的source移植到32位存放乙個整數的計算機系統上的過程。為了使移植性加強,我

們可以取得某一位時該數&&某數時,可以採用a=a&~1【舉個例子】這種方法來取得最後一位。切記取反與正負號運算是不同的。

【五】:左移運算子「<<」,是指將乙個數的各個二進位全部左移若干位,左移的過程中右邊則補0,高位溢位捨棄不用。一般情況下【不包括左移

高位溢位捨棄的數中不包含1的情況】左移n位後,使該數變成原來數的2的n次方倍。對於左移捨棄位中包含1的情況下,日後查詢資料後再做研究:)

【六】:右移運算子「>>」,與左移運算相反,右移使原來的數縮小到原來數的2的n次方。但是應該注意右移的過程中要注意符號位的問題。對於

無符號數,右移時左邊高位移入0,對於有符號的值,如果原來符號為0【正數】,則左邊也是移入0,如果時1【負數】,左邊移入1,還是0這個就要取決所用

到的計算機系統,移入0時稱為【邏輯右移】,移入1時稱為【算術右移】

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