如何使用基本的数学运算符(如 +、-、*、/)实现 XOR
更新:实际上,我需要跟踪两个具有 boolean 值的矩阵的变化。这可以通过将每个值与其他矩阵中的相应值进行异或来完成。但是,Lp_Solve 库不支持 XOR 操作。此外,它只接受线性方程。
最佳答案
(a - b)²
之所以有效,是因为:
(a − b)² = a * (a − b) + b * (b − a)
由于ℤ₂中的乘法是合取(&
),而1 - a
是否定(!
),上式等价于a, b ∈ {0, 1}
的异或:
(a & !b) | (b & !a)
请参阅下面 Pascal Cuoq 的评论,解释为什么这不能是线性方程。
关于java - 使用数学运算符进行异或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2385389/