6

是否可以简化(a+b)xor(c+b)b对最终结果的贡献是什么?请注意,我将布尔代数与算术混合在一起,xor是按位异或在相应位上,+是 8 位上的标准加法,溢出时会回绕。a, b, c 是无符号字符;

4

2 回答 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 回答