163

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?

A.N.R.I
  • 1,931
  • 2
  • 15
  • 20

4 Answers4

332

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)
Veger
  • 37,240
  • 11
  • 105
  • 116
23

The inverse of XOR is XOR itself.
I came across a similar problem on leetcode. Leetcode-1720

Dharman
  • 30,962
  • 25
  • 85
  • 135
Neel Alex
  • 605
  • 6
  • 10
11

The inverse of XOR is XOR itself. For example if you take this operation :

3 ^ 4 = 7

The following statements are true :

4 ^ 7 = 3

3 ^ 7 = 4

Hopefully, this helps.

FrankelStein
  • 907
  • 2
  • 13
  • 30
Himanshu Gupta
  • 189
  • 2
  • 5
3

Inverse of a XOR is XOR itself.

For better reference and understanding u can refer to LeetCode 2433.

aryan183
  • 51
  • 3