How can I implement XOR using basic mathematical operators like +,-,*,/
Update: Actually, I need to track change in two matrix having Boolean values. This can be done using XORing each value with corresponding value in other matrix. But, Lp_Solve library doesn't support XOR operation. Also, it accepts only linear equations.
There is no mathematical equivalent as XOR is a bitwise operation. They are not related to mathematics but to how computers handle numbers.
In all languages you can XOR two integers say a and b by '^' this operation. i.e to find a XOR b, just do a^b (this operation is defined in all languages).
This works because:
(a − b)² = a * (a − b) + b * (b − a)
Since multiplication in ℤ₂ is conjuction (&
), and 1 - a
is negation (!
), the above formula is equivalent to XOR for a, b ∈ {0, 1}
:
(a & !b) | (b & !a)
See the comment below by Pascal Cuoq explaining why this cannot be a linear equation.
The simplest expression I can come up with is: a != b
.
(Previous best effort was (a + b) == 1
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With