简单地说,是否存在AND OR概念的运算符?
EX:if (a = true AND OR b = true)
如果不是运营商,可以采取什么样的流程来做到这一点?
答案 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为真,或两者都为真。
在英语中,我们说“和/或”因为“或”通常是排他性的,类似于逻辑异或:A或B是真的,但不是两者。
大多数语言缺少逻辑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是真的,那么它不是正确的编程表达式,也不是布尔代数中的正确表达式。你不能在声明中有这样的结合和分离。你不能在维恩图或逻辑门中表示该语句,你应该能够使用任何有效的布尔表达式。要查看此内容,请尝试在真值表中写下您的问题。