是否可以简化(a+b)xor(c+b)?b对最终结果的贡献是什么?请注意,我将布尔代数与算术混合在一起,xor是按位异或在相应位上,+是 8 位上的标准加法,溢出时会回绕。a, b, c 是无符号字符;
问问题
13791 次
2 回答
5
我们可以使用 SMT 求解器来检验我们的假设,即您的公式可以简化。您可以前往http://rise4fun.com:
x = BitVec('x', 8)
y = BitVec('y', 8)
z = BitVec('z', 8)
print simplify((x + z) ^ (y + z))
结果,虎头蛇尾,是:
x + z ^ y + z
这意味着您的公式无法进一步简化。
于 2014-03-05T16:15:31.277 回答
3
(a+b)xor(c+b)
--------------
=((not(a+b))*(c+b))+((a+b)*(not(c+b)))
-----------------------
=((not a)*(not b)*(c+b))+((a+b)*(not c)*(not b))
----
=((not a)(not b)*c) + (a*(not c)(not b))
----
=(not b)((not a)c + a(not c))
----
=(not b)(a xor c)
----
于 2020-05-08T11:15:03.870 回答