位運算子比一般的算術運算子速度要快,而且可以實現一些算術運算子不能實現的功能。如果要開發高效率程式,位運算子是必不可少的。位運算子用來對二進位制位進行操作,包括:按位與(&)、按位或(|)、按位異或(^)、按位取反(~)、按位左移(<<)、按位右移(>>)。下面就給大家介紹位運算子的詳細用法。
位運算子詳解
工具/原料
位運算指定 a = 60(0011 1100); b = 13 (0000 1101)
1按位與(&)
對兩個數進行操作,然後返回乙個新的數,這個數的每個位都需要兩個輸入數的同一位都為1時才為1,如下圖:
(a & b) 結果為 12, 二進位制為 0000 1100
位運算子詳解
2按位或(|)
比較兩個數,然後返回乙個新的數,這個數的每一位設定1的條件是兩個輸入數的同一位都不為0(即任意乙個為1,或都為1),如下圖:
(a | b) 結果為 61, 二進位制為 0011 1101
位運算子詳解
3按位異或(^)
比較兩個數,然後返回乙個數,這個數的每個位設為1的條件是兩個輸入數的同一位不同,如果相同就設為0,如下圖:
(a ^ b) 結果為 49, 二進位制為 0011 0001
位運算子詳解
4按位取反(~)
對乙個運算元的每一位都取反,如下圖:
(~a ) 結果為 -61, 二進位制為 1100 0011
位運算子詳解
5按位左移(<<)
將運算元的所有位向左移動指定的位數。
下圖展示了11111111 << 1(11111111 左移一位)的結果。藍色數字表示被移動位,灰色表示被丟棄位,空位用橙色的0填充。
(a << 2)結果為 240, 二進位制為 1111 0000
位運算子詳解
6按位右移(<<)
將運算元的所有位向又移動指定的位數。
下圖展示了11111111 >> 1(11111111 右移一位)的結果。藍色數字表示被移動位,灰色表示被丟棄位,空位用橙色的0填充。
a >> 2 結果為 15, 二進位制為 0000 1111
位運算子詳解
7好了,關於位運算子就給大家介紹到這裡,有開發環境的程式猿朋友可以多多練習
C語言位操作
在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來 完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功 能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種位運算...
c語言位操作
位運算 and與 有一位為0 運算就為0 想獲取高四位,a a 0xf0 簡寫 a 0xf0 清零 一三五七位清零 a a 0x55 檢測位 檢測第三位 a a 0x04 遮蔽高四位,保留低4 位 a a 0x0f 統計2進製a中1的個數 1 include2 int main 3 11 print...
C語言位操作
朱老師物聯網大講堂 學習筆記 1 位與 只有1 1才是1,其餘全是0,位或 只有0 0才是0,其餘全是1,位取反 按位操作,位異或 1 0 1 0 1 1,也就是說相異結果是1,與1異或會取反,與0異或無變化,移位分 左 右 移,物件分 有 無符號數,只說一點 有符號數右移左側補符號位,叫算術移位,...