2014-03-05 114 views
6

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

+1

不太可能,因为异或是纯粹的按位,而加法会影响相邻的位。 –

回答

2

我们可以使用SMT解算器来测试我们的假设,即您的公式可以被简化。您可以前往http://rise4fun.com

x = BitVec('x', 8) 
y = BitVec('y', 8) 
z = BitVec('z', 8) 

print simplify((x + z)^(y + z)) 

和结果,anticlimactically是:

x + z^y + z 

这意味着你的公式不能进一步简化。

+0

我在这个问题中没有看到任何假设! –

+0

这个结果没有意义'x + z^y + z'。原始和是围绕'x'和'y'对称的,而结果不是。 –

+0

@SalvadorDali:如果您考虑Python运算符优先级(Z3使用的优先级):https://docs.python.org/3/reference/expressions.html#index-77 –

相关问题