AND OR运算符

时间:2014-09-04 04:29:13

标签: c++ c operators

简单地说,是否存在AND OR概念的运算符?

EX:if (a = true AND OR b = true)

如果不是运营商,可以采取什么样的流程来做到这一点?

4 个答案:

答案 0 :(得分:4)

英语概念and/or已在基于C语言中表示为||,即inclusive

如果a || b为真,或a为真或两者为真,我的意思是b为真。

你是一个男孩还是一个女孩" "或"的含义(要么"你是男孩"或者"你是女孩",但不是两者都是)exclusive,并没有真正适应原始操作员。

要实现,您可以使用如下表达式:

a != b

假设它们是由布尔运算生成的值,而不是任意整数(C也允许)。

对于以与C相同的方式处理任意整数,请使用:

!!a != !!b

双布尔否定将迫使它们成为"正确的"比较前的布尔值。


如果您想更深入地检查不同的按位运算符,请参阅this answer,或参考下表,其中F表示错误(或零)和T代表真(或一):

AND | F T     OR | F T     XOR | F T    NOT | F T
----+-----    ---+----     ----+----    ----+----
 F  | F F      F | F T       F | F T        | T F
 T  | F T      T | T T       T | T F

答案 1 :(得分:0)

在大多数编程语言中,包括C和C ++,逻辑OR(||)从数学中获取其含义,​​因此具有包容性:A或B为真,或两者都为真。

  • true或true = true
  • true或false = true
  • false OR true = true
  • false或false = false

在英语中,我们说“和/或”因为“或”通常是排他性的,类似于逻辑异或:A或B是真的,但不是两者。

  • true XOR true = false
  • true XOR false = true
  • false XOR true = true
  • false XOR false = false

大多数语言缺少逻辑XOR运算符,因为它等同于布尔运算符的非等于(!=)。

bool xor(bool a, bool b) {
  return a != b;
}

答案 2 :(得分:0)

你的意思是XOR(独家OR)?

XOR运算符的简短答案:^

但从它的外观来看,我认为你可能需要更好地比较变量的基础,你可能想要熟悉这个:http://www.cplusplus.com/doc/tutorial/operators/

答案 3 :(得分:0)

如果A是真的并且或者B是真的,那么它不是正确的编程表达式,也不是布尔代数中的正确表达式。你不能在声明中有这样的结合和分离。你不能在维恩图或逻辑门中表示该语句,你应该能够使用任何有效的布尔表达式。要查看此内容,请尝试在真值表中写下您的问题。