Simplify (a + b) XOR (c + b)

Simplify (a + b) XOR (c + b)

本文关键字:XOR Simplify      更新时间:2023-10-16

是否可以简化(A B)XOR(C B) b 对最终结果的贡献是什么?请注意,我正在将布尔代数与算术中混合, XOR 是位独家或相应的位,并且是8位的标准添加,它在溢出时包裹着。a,b,c是未签名的char;

我们可以使用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

这意味着您的公式无法进一步简化。

(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)
----