位運算子作用於位,並逐位執行操作。&、 | 和 ^ 的真值表如下所示:pq
p & q
p | q
p ^ q00
0000
1011
1111
0100
11假設如果 a = 60,且 b = 13,現在以二進位制格式表示,它們如下所示:
a = 0011 1100
b = 0000 1101
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
下表顯示了 c++ 支援的位運算子。假設變數 a 的值為 60,變數 b 的值為 13,則:
運算子描述例項&
如果同時存在於兩個運算元中,二進位制 and 運算子複製一位到結果中。
(a & b) 將得到 12,即為 0000 1100
|如果存在於任一運算元中,二進位制 or 運算子複製一位到結果中。
(a | b) 將得到 61,即為 0011 1101
^如果存在於其中乙個運算元中但不同時存在於兩個運算元中,二進位制異或運算子複製一位到結果中。
(a ^ b) 將得到 49,即為 0011 0001
~二進位制補碼運算子是一元運算子,具有"翻轉"位效果,即0變成1,1變成0。
(~a ) 將得到 -61,即為 1100 0011,乙個有符號二進位制數的補碼形式。
<<
二進位制左移運算子。左運算元的值向左移動右運算元指定的位數。
a << 2 將得到 240,即為 1111 0000
>>
二進位制右移運算子。左運算元的值向右移動右運算元指定的位數。
a >> 2 將得到 15,即為 0000 1111
C 位運算子
c 源自c,在提供高階語言便利的同時,也繼承了c在硬體程式設計方面的功能。因此適用於編寫裝置驅動和嵌入式大 c c 提供位邏輯運算子和移位運算子。二者只能用於整形和字元型。位運算子是對每位進行操作而不影響左右兩位,這有別於常規運算子 是將整個數進行操作的。一 位邏輯運算子 1 按位取反 將1變為0,...
C 位運算子
最近工作專案壓力不大,便繼續開始自學c 發現基礎知識忘記的差不多了.上網搜尋了一些基礎的不能再基礎的東西,溫故知新.c 位運算子 http www.diybl.com course 3 program c cppjs 20090403 163995.html c c 提供位邏輯運算子和移位運算子。二...
C 位運算子
位運算子作用於位,並逐位執行操作。和 的真值表如下所示 pq p qp q p q000 0001 0111 1110 1001 1假設如果 a 60,且 b 13,現在以二進位制格式表示,它們如下所示 a 0011 1100 b 0000 1101 a b 0000 1100 a b 0011 1...