如何在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