如何在C/C++中設定、清除和轉換位?


使用位運算子,可以在C、C++、Python以及支援這些運算子的所有其它程式語言中設定、清除和轉換位。你還需要使用位移運算子來設定位。

設定位

要設定位,我們需要使用位運算子OR(或)−

示例

#include<iostream>
using namespace std;
int main() {
   int i = 0, n;
   
   // Enter bit to be set:
   cin >> n;
   i |= (1 << n); // Take OR of i and 1 shifted n positions
   cout << i;
   return 0;
}

輸出

如果輸入4,則會輸出−

16

因為16等同於二進位制中的10000。

清除位

要清除位,我們需要使用位運算子與(&)和位運算子非(~)−

示例

#include<iostream>
using namespace std;
int main() {
   // i is 110 in binary
   int i = 6, n;
   
   // Enter bit to be cleared:
   cin >> n;
   i &= ~(1 << n); // Take OR of i and 1 shifted n positions negated
   cout << i;
   return 0;
}

輸出

如果輸入1,則會輸出−

4

因為110變為100,在十進位制中相當於4。

轉換位

要轉換位,我們需要使用位運算子異或(^)−

示例

#include<iostream>
using namespace std;
int main() {
   // i is 110 in binary
   int i = 6, n;
   
   // Enter bit to be toggled:
   cin >> n;
   i ^= (1 << n); // Take XOR of i and 1 shifted n positions
   cout << i;
   return 0;
}

輸出

如果輸入1,則會輸出−

4

因為110變為100,在十進位制中相當於4。

更新日期: 2020年2月11日

8000+次瀏覽

開啟你的 職業生涯

透過完成課程獲取認證

開始
廣告
© . All rights reserved.