C++ &-按位与
示例
int a = 6; //0110b(0x06) int b = 10; //1010b(0x0A) int c = a & b; //0010b(0x02) std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;
输出结果
a=6,b=10,c=2
为什么
按位AND操作在位级别上使用以下布尔真值表:
TRUE AND TRUE = TRUE TRUE AND FALSE = FALSE FALSE AND FALSE = FALSE
当二进制值a(0110)和二进制值b(1010)是AND“编在一起,我们得到的二进制值0010:
int a = 0 1 1 0 int b = 1 0 1 0 & --------- int c = 0 0 1 0
逐位AND不会更改原始值的值,除非专门指定使用逐位赋值复合运算符&=:
int a = 5; //0101b(0x05) a &= 10; // a = 0101b & 1010b