Java中有XOR函数 -
a^b
例如:
5^3 = 6
你能告诉我反函数吗?如果我有
6
和 3
我可以获得包含数字 5
的数字范围吗?
逆运算是异或!
如果您有:
c = a^b;
如果您有其他可用值,您可以取回
a
或 b
:
a = c^b; // or b^c (order is not important)
b = c^a; // or a^c
例如,如果
a = 5
,b = 3
(因此如您提到的 c = 6
),您会得到:
b=0011 (3) a=0101 (5)
c=0110 (6) XOR or c=0110 (6) XOR
---------- ----------
a=0101 (5) b=0011 (3)
XOR 的逆就是 XOR 本身。
我在leetcode上也遇到过类似的问题。 Leetcode-1720
XOR 的逆就是 XOR 本身。例如,如果您执行此操作:
3 ^ 4 = 7
以下陈述正确:
4 ^ 7 = 3
3 ^ 7 = 4
希望这有帮助。
XOR 的逆就是 XOR 本身。
为了更好的参考和理解,你可以参考LeetCode 2433。
正如许多人所写的,XOR 是它自己的逆。考虑操作的真值表可能会有所帮助:
A | B | A 异或B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
产生以下结果:
A | 异或A | 异或(异或A) |
---|---|---|
0 | 0 异或 0 = 0 | 0 异或 0 = 0 |
1 | 1 异或 1 = 0 | 1 异或 0 = 1 |