按位与运算符 &
& (按位 AND) 运算符将其第一个操作数的每个位与第二个操作数的相应位进行比较。 如果两个位都是 1,那么结果的相应位将设置为 1。 否则,它会将相应的结果位设置为 0。
两个操作数都必须具有整数或枚举类型。 对每个操作数执行通常的算术转换。 结果的类型与转换后的操作数相同。
由于按位 AND 运算符同时具有关联属性和交换属性,因此编译器可以在包含多个按位 AND 运算符的表达式中重新排列操作数。
以下示例显示了 a, b的值以及以 16 位二进制数字表示的 a & b 的结果:
a 的位模式 |
0000000001011100 |
b 的位模式 |
0000000000101110 |
a & b 的位模式 |
0000000000001100 |
注: 不应将按位 AND (
,而
&) 与逻辑 AND 混淆。 (&&) 运算符。 例如1 & 4 求值为 0,而
1 && 4 求值为 true