c/c++提供了六個位運算操作符,可以對整數進行位運算,下面分別來介紹這六種位運算子。
(1)按位與&
將兩個運算元的每乙個二進位制位進行邏輯與運算。
例如:3&5
3:00000011
5:00000101
3&5:00000001
按位與操作有以下兩個特別的用處:將某個運算元的若干位置0;取運算元的若干指定位。
char
a = a & 0xfe;
//將char型別變數a的最低位置0
2:char
c;int
n;c=n&0xff
//將int型別變數n的低8位賦給char型別變數c
(2)按位或|
將兩個運算元的每乙個二進位制位進行邏輯或運算。 例如:
3:00000011
5:00000101
3|5:00000111
按位或可以將運算元的某些指定位置1。
int a; a = a | 0xff;//將int a的低8位置1
(3)按位異或^
將兩個運算元的每乙個二進位制位進行邏輯異或運算。運算規則:對應位相同,異或結果為0;對應位不同,異或結果為1。
例如:3:00000011
5:00000101
3^5:00000110
異或的特殊功能:某位與0異或,結果與原數值相同;某位與1異或,結果與原數值相反。
舉例:要使00001111低四位反轉,只需將其與0xf異或
^00000101
(4)按位取反~
對運算元的每個二進位制位取反。這個就不細說啦
(5)左移位<
按照運算子右側運算元指定的位數將左側運算元二進位制值向左移動。低位補0,高位捨棄。
(6)右移位》;
按照運算子右側運算元指定的位數將左側運算元二進位制值向右移動。低位捨棄;無符號數高位補0,有符號數高位要麼補0,要麼補符號位。
掌握位運算一方面要牢記概念,另一方面需要注意各種位運算的特點。
C C 中的位運算
位運算的操作物件是整數型別,在運算過程中,整數被看作二進位制的集合,位運算的功能是提供檢查和設定二進位制的功能。位運算遵從左結合律。位求反 左移 右移 位與 位異或 位或 1 左移 把二進位制位向左移位,右側插入0進行補位。2 右移 把二進位制向右移位,如左側物件是無符號位,則插入為0的二進位制。若...
C C 中的位運算子
開始 我自己都記不住這是第幾次把這幾個位運算子搞混了,剛好在剛用過來把這幾個位運算子記下來,俗話說的好好記性不如個爛筆頭。運算子 與 或 非 異或 and or not 單目運算子 按位取反 雙目運算子 左移,右移,按位與,按位或,按位異或 1 按位取反具有有結合性,其功能為對參與運算的數的各二進位...
C C 位操作 位運算
在c語言中,可以單獨操控變數的位 bit 一般高階語言不會處理這級別的細節,c在提供高階語言便利的同時,還能為組合語言所保留的級別上工作,這使其成為編寫裝置驅動程式和嵌入式 的首選語言。目錄 二進位制整數 binary 有符號整數 八進位制 octal 十六進製制 hex 位運算子 按位與 的用途 ...