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