如何在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。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP