O que é função inversa para XOR?

95

Existe uma função XOR em Java - a^b

Por exemplo: 5^3 = 6

Você pode me dizer a função inversa? Se eu tenho 6e 3posso obter uma gama de números que incluem o número 5?

ANRI
fonte

Respostas:

204

O inverso é XOR!

Se você tem:

c = a^b;

Você pode obter aou bdevolver se tiver o outro valor disponível:

a = c^b; // or b^c (order is not important)
b = c^a; // or a^c

Por exemplo a = 5, se , b = 3(e assim c = 6como você mencionou) você obtém:

b=0011 (3)            a=0101 (5)
c=0110 (6) XOR   or   c=0110 (6) XOR
----------            ----------
a=0101 (5)            b=0011 (3)
Veger
fonte
44

O inverso de XOR é XOR .....

dty
fonte