逻辑运算符AND(&)的反转

时间:2014-03-26 13:56:31

标签: logical-operators boolean-logic

 a + b = c
 c - a = b

好的,现在

 a & b = c
 c ?? a = b

哪个运营商替换“??” ?
感谢

4 个答案:

答案 0 :(得分:17)

这是不可能的。这是因为a & b是一种有损变换。

您不知道丢弃的1位是否属于ab

答案 1 :(得分:16)

没有这样的运算符,因为如果它存在,它将是不明确的:

所以,让a = 0, c = 0

我们有

a & 0 = c
a & 1 = c

然后,我们应该

c ?? a = 0   and  c ?? a = 1

,但是在给定相同输入/参数的情况下,运算符/函数不能返回两个值。

答案 2 :(得分:8)

你不能。

0 && 0 == 0
1 && 0 == 0

要解决此问题,您需要一位同时回复01的运算符。

(但如果您b == 1当然知道a == c。)

答案 3 :(得分:0)

我在这里看到一个巨大的挑战,反转逻辑功能是一个问题,一旦解决将有助于改善,例如软件测试。

你有声明(list.Constains(“TEXT”)和(list.Size()> 0)而不是(b))= true

反向运算符理想情况下会为函数返回一个解空间(list.Constains(“TEXT”)和(list.Size()> 0)而不是(b))使得它成为真。

让这样的流程自动化将允许无缝的代码覆盖率改进并且将使人们从这项工作中消失,我认为这也是构建AI的潜在步骤。