1,位与运算符
输入两个整数,求两个整数(二进制表示)每一位进行“&”的操作,从低到高每一位开始比较,例子在下面的代码
int main(){
int a = 0b1010;
int b = 0b0ll0;
//a & b = 0b0010 = 2
cout<<(a & b)<<endl;
}
为什么要看一眼这个运算符,因为这个是位运算不可少的一种符号,在奇偶性中会有很好的应用,例如
int main(){
//一般我们再写代码时判断奇偶时会有下面操作
int a;
cin >> a;
if(a % 2 == 1) cout << "奇数" << endl;
else cout << "偶数" << endl;
}
但是在位运算中会有奇效
int main(){
int a;
cin >> a;
if(a & 1) cout << "奇数" << endl;
else cout << "偶数" << endl;
//举个例子 a = 5;
//a = 0b0101 1 = 0b0001;
//a & 1 = 0b0001 为奇数
}
消除末尾连续的1;
int main(){
int c;
cin>>c;
cout<<(c & (c+1))<<endl;
}
2,位或运算符
输入两个整数,求两个整数(二进制表示)每一位进行“|”的操作,从低到高每一位开始比较,例子在下面的代码
int main(){
int a = 0b1010;
int b = 0b0110;
// a | b = 0b1110 = 14
cout<<(a | b)<<endl;//14
}
不是很常用,用处很少