我想知道result
在以下两种情况下的价值:
1
var result = false;
result |= false;
2
var result = false;
result |= true;
答案 0 :(得分:3)
这是BitWise OR Assignment。见http://msdn.microsoft.com/en-us/library/ie/81bads72%28v=vs.94%29.aspx
所以result |= expression
与result = result | expression
答案 1 :(得分:1)
|
运算符是Bitwise OR运算符。而不是执行标准二进制OR(下面的真值表),|
运算符将为两个操作数的每个位执行二进制OR。
二进制OR
x|y|q
0|0|0
1|0|1
0|1|1
1|1|1
实施例
3 | 5
// in binary
0011 | 0101
// as a truth table
x|y|q
0|0|0
0|1|1
1|0|1
1|1|1
0011 | 0101 = 0111
// in decimal
3 | 5 = 7
将Bitwise OR运算符与等号结合使用会将其转换为赋值语句,其方式与+=
或-=
或任何其他逻辑/算术运算符类似。它只是result = result | operand
的缩写。
重要的是要注意,如果您使用具有布尔值(true或false)的运算符,则在以上述方式进行比较之前,它们将被强制转换为数值(分别为1和0)。
答案 2 :(得分:0)
它是BitWise运算符的赋值运算符“|”在每个位的位置返回一个,其中一个或两个操作数的相应位是1。