javaxorinverse

What is inverse function to XOR?


There is XOR function in Java - a^b

For exemple: 5^3 = 6

Can you tell me inverse function? If I have 6 and 3 can i get range of numbers which include number 5?


Solution

  • The inverse is XOR!

    If you have:

    c = a^b;
    

    You can get a or b back if you have the other value available:

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

    For example if a = 5, b = 3 (and thus c = 6 as you mentioned) you get:

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