134

Java中有XOR函数-a^b

举个例子:5^3 = 6

你能告诉我反函数吗?如果我有6并且3可以得到包括 number 的数字范围5吗?

4

3 回答 3

287

逆是异或!

如果你有:

c = a^b;

如果您有其他可用值,则可以取回a或取回:b

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

例如,如果a = 5b = 3(因此c = 6正如你所提到的)你得到:

b=0011 (3)            a=0101 (5)
c=0110 (6) XOR   or   c=0110 (6) XOR
----------            ----------
a=0101 (5)            b=0011 (3)
于 2013-01-11T14:14:19.103 回答
15

XOR 的逆是 XOR 本身。
我在 leetcode 上遇到了类似的问题。Leetcode-1720

于 2021-02-06T01:09:19.887 回答
2

XOR 的逆是 XOR 本身。例如,如果您执行此操作:

3 ^ 4 = 7

以下陈述是正确的:

4 ^ 7 = 3

3 ^ 7 = 4

希望这会有所帮助。

于 2021-12-23T14:46:18.910 回答