这个语法真正做什么int i = 1 | 2; bool b = false |真正;

时间:2013-10-31 11:13:48

标签: c# .net

我很困惑为什么我们可以在'or'(|)之类的语句中使用int i = 1 | 2 ; bool b = false | true;运算符 这个语法到底是做什么的?什么时候这个语法有用,有人可以指教那个语法吗?

3 个答案:

答案 0 :(得分:3)

是按位OR运算符,它在2个值之间进行数字运算,如1具有二进制值0001,而2具有二进制值0010,所以如果你写1 | 2然后它将返回0011值,即3。

对于bool,它执行布尔OR,即仅当两个操作数均为假时才给出false。

它是为bool和整数类型定义的。它也可以为用户定义的类型重载。请看msdn

答案 1 :(得分:1)

位OR

1 = 0000 0001
2 = 0000 0010
1|2 = 0000 0011

或表

A B A|B
0 1  1
0 0  0
1 0  1
1 1  1

使用案例

BitWise OR用于设置特定位。

示例: 假设我们必须在0000 0001中设置第2位

  <00> 0000 0001 | 0000 0100 = 0000 0101

答案 2 :(得分:1)

由于整数问题已经回答:

对于bool值,例如bool x = true | false x is true

如果两个操作都是假的,那就错了,只有两个。其他一切都是真的

 true | false  => true
false | true => true
 true | true => true

false | false => false