【C++】C++之位運算符

位運算符

位運算符作用於位,並逐位執行操作。&、 | 和 ^ 的真值表如下所示:

p q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

假設如果 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

來源於:http://www.runoob.com/cplusplus/cpp-operators.html


更多可以參考: 《c++位運算和邏輯運算》 作者:tzheng2008
地址:http://blog.csdn.net/tzheng2008/article/details/7257446

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章