用xor变量计算

时间:2013-03-04 08:04:33

标签: javascript algorithm

我按照这样计算:

117^196 

我明白了:

177

现在我要做的就是让117回来,所以我需要进行替换

(replace)^196 = 117

与xor运算符相反的操作是什么?

3 个答案:

答案 0 :(得分:4)

xor的反面是xor :)。如果你xor两次(a^b)^b == a

这相对容易展示。对于每一位:

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

对任意一对数字ab执行此操作,很容易看到

a^bab xor'd产生另一个(xor a产生b,反之亦然)

1 2 filter result
0^0^0      = 0
0^1^0      = 1
0^1^1      = 0
1^0^0      = 1
1^0^1      = 0
1^1^1      = 1

答案 1 :(得分:0)

它只是xor自我。

+相反的是-

xor的对面是xor

答案 2 :(得分:0)

只需使用您获得的结果:177

117 ^ 196        = 177         | () ^ 196
117 ^ 196 ^ 196  = 177 ^ 196   | self-inverse
117 ^ 0          = 177 ^ 196   | neutral element
117              = 177 ^ 196

XOR有三个重要属性。它是

  • 缔合
  • 交换
  • 自逆

这意味着一个值是它自己的反转:

a^a = 0

既然它也是可交换的和关联的,你可以重新排列和包含相同操作数的事件量的xor-expression,如下所示:

a^O^b^c^O^d = O^O^a^b^c^d = 0^a^b^c^d = a^b^c^d

你可以说看似偶数时间的操作数“相互抵消”。