二元位运算表达式
语法
| 形式 | 语法 |
|---|---|
| 1 | 表达式 & 表达式 |
| 2 | 表达式 | 表达式 |
| 3 | 表达式 ^ 表达式 |
描述
二元位运算表达式用于对整数类型的值进行按位运算。
在用于执行位运算时,二元位运算表达式的两个子表达式的类型都应当是 int 类型,否则将
导致编译/运行时错误。
按位与(&)
按位与运算符 & 对两个整数的每一位执行逻辑与操作,只有当两个对应的位都为1时,结果
位才为1,否则为0。
12 & 7 ==> 0b001100 & 0b000111 ==> 0b000100 ==> 4
按位或(|)
按位或运算符 \| 对两个整数的每一位执行逻辑或操作,只要两个对应的位中有一个为1,
结果位就为1,否则为0。
12 \| 7 ==> 0b001100 \| 0b000111 ==> 0b001111 ==> 15
按位异或(^)
按位异或运算符 ^ 对两个整数的每一位执行逻辑异或操作,当两个对应的位不同(一个为1,
另一个为0)时,结果位为1,否则为0。
12 ^ 7 ==> 0b001100 ^ 0b000111 ==> 0b001011 ==> 11
示例
int a = 12; // 二进制表示为 0b001100
int b = 7; // 二进制表示为 0b000111
int c = a & b; // c 的值为 4,二进制表 示为 0b000100
int d = a | b; // d 的值为 15,二进制表示为 0b001111
int e = a ^ b; // e 的值为 11,二进制表示为 0b001011