5

我试图在 JS 上找出这个运算符 -

'string' ^= 'string';

但是我找不到蚂蚁信息。这是比较还是分配?

谢谢。

4

4 回答 4

7

myVar ^= 5是一样的myVar = myVar ^ 5^是位运算xor

假设myVar设置为 2

  • 二进制的 5 是:101
  • 2的二进制是:010

异“或”检查两个数字的第一位,看到 1,0 并返回 1,然后看到 0,1 并返回 1,看到 1,0 并返回 1。

因此 111 转换回十进制是 7

5^27也是

var myVar = 2;
myVar ^= 5;
alert(myVar); // 7
于 2013-04-07T13:20:22.763 回答
4

^(caret) 是按位 XOR(异或)运算符。就像与更常见的运算符组合一样+=a ^= b相当于a = a^b.

有关更多详细信息,请参阅Mozilla 的 Javascript 文档。

于 2013-04-07T13:16:42.223 回答
2

x ^= y按位 XOR和简写x = x^y- 因此在技术上是回答您问题的“作业”。准确地说,单个运算符“^”表示按位异或。

于 2013-04-07T13:12:53.527 回答
1

正如 d'alar'cop(以及其他几个人)已经指出的那样,这意味着所谓XOR的 . 我总是讨厌阅读维基百科的解释,所以我要在这里放另一个解释:

“异或”的意思是“异或”。那是什么?先举个例子:

11000110 -- random byte
10010100
--------- ^ -- XOR
01010010

XOR 是一些按位运算,如果两个位中的一个为 1,另一个为 0,则返回两个。如果它们都是 1,则它是“和”,而不是“异或”(“正常或”将允许两个 1)。

于 2013-04-07T13:20:36.540 回答