&=和|=的区别
#include
using namespace std;
int main()
{
//运算对象有两个,那么&表示位与运算。结果中的每一个二进制位等于两个运算数的对应位置的二进制位按位与。
//每一个位的位与运算法则是,当且仅当运算数都为1时结果为1,
//即:1 & 1 == 1,1 & 0 == 0 & 1 == 0 & 0 == 0。
bool A = true;
bool B = false;
A &= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
A = true;
B = true;
A &= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
A = false;
B = false;
A &= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
A = false;
B = true;
A &= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
//运算对象有两个,那么|表示位或运算。结果中的每一个二进制位等于两个运算数的对应位置的二进制位按位或。
//每一个位的位与运算法则是,当且仅当运算数只要有一个为1时结果为1,
//即:1 & 1 == 1 & 0 == 0 & 1 == 1,0 & 0 == 0。
A = true;
B = false;
A |= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
A = false;
B = false;
A |= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
A = false;
B = true;
A |= B;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
return 0;
/*结果:
A = 0
B = 0
A = 1
B = 1
A = 0
B = 0
A = 0
B = 1
A = 1
B = 0
A = 0
B = 0
A = 1
B = 1
*/
}