Cos'è la funzione inversa di XOR?


95

C'è la funzione XOR in Java - a^b

Per esempio: 5^3 = 6

Puoi dirmi la funzione inversa? Se ho 6e 3posso ottenere un intervallo di numeri che include il numero 5?

Risposte:


205

L'inverso è XOR!

Se hai:

c = a^b;

Puoi ottenere ao brestituire se hai a disposizione l'altro valore:

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

Ad esempio se a = 5, b = 3(e quindi c = 6come hai detto) ottieni:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.