C++學習筆記6:按位運算符

按位運算符對整數值得位進行操作。

1. 移位運算符

1.1 左移運算符(<<)

  • 騰出的位置用0填充,超出的位被丟棄。
  • 左移n位相當於乘以2的n次方
int x = 20;
int y = x << 2;
x <<= 3;

1.2 右移運算符(>>)
  • 對於無符號整數,騰出的位置用0填充,超出邊界的位被刪除。
  • 對於有符號整數,騰出的位置可能用0填充,也可能用原來最左邊的位填充,這取決於C++實現。
  • 右移n位相當於除以2的n次方。
int q = 30;
int y = q >> 2;
q >>= 3;
2. 邏輯按位運算符
2.1 求反運算符(~)
用於值的每一位,0轉換成1,1轉換成0。
2.2 按位或運算符(|)
被操作的兩個值對應位至少有有一個爲1,則新值中相應位爲1。
int a = 2,b = 5;
int c = a | b;
a |= b;
2.3 按位異或運算符(^)
被操作的兩個值對應位只有一個1,則新值中相應位爲1。
int a = 20,b = 34;
int c = a ^ b;
a ^= b;
2.4 按位與運算符(&)
被操作的兩個值對應位都爲1,則新值中相應位爲1。
int a = 20,b = 30;
int c = a & b;
int a &= b;


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