按位包含或运算符 |
| (按位包含 OR) 运算符比较每个操作数的值 (采用二进制格式) ,并生成一个值,其位模式显示任一操作数中的哪些位具有值 1。 如果这两个位都是 0,那么该位的结果为 0; 否则,结果为 1。
两个操作数都必须具有整数或枚举类型。 对每个操作数执行通常的算术转换。 结果的类型与转换后的操作数相同,不是 lvalue。
因为按位包含 OR 运算符同时具有关联属性和交换属性,所以编译器可以在包含多个按位包含 OR 运算符的表达式中重新排列操作数。 请注意, | 字符可以由 trigraph ??!表示。
以下示例显示了 a, b的值以及以 16 位二进制数字表示的 a | b 的结果:
a 的位模式 |
0000000001011100 |
b 的位模式 |
0000000000101110 |
a | b 的位模式 |
0000000001111110 |
注: 不应将按位 OR (
,而
|) 与逻辑 OR (||) 运算符混淆。 例如1 | 4 求值为 5,而
1 || 4 求值为 true