如何在 C/C++ 中设置、清除和切换一个位?
在 C、C++、Python 和所有其他支持这些操作的编程语言中,可以使用位运算符设置、清除和切换位。还需要使用移位运算符将位移到正确的位置。
设置位
要设置位,我们需要使用位或运算符 -
示例
#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