2014-03-05 121 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 –

相關問題