0

在阅读了“当天的面试问题”之后,我偶然发现了一种关于 xor 操作的不熟悉的编程语法。有人可以并且会解释执行时发生的情况:

result = 2;
out.println(result ^= 10);    // This gives a result of 8.

result = 3;
out.println(result ^= 10);    // This gives a result of 9.

result = 4;                   
out.println(result ^= 10);    // This gives a result of 14.

我很难弄清楚这一点......

4

1 回答 1

0

这称为按位异或运算符。如果比较的位中的任何一个为 1,则为 1。如果 BOTH 为 1,或 BOTH 均为 0,则结​​果将为 0。它实际上是在您正在比较的数字的 BIT 级别上工作。

例子:

0010 ^= (XOR) 1010 = 1000
(2)  ^=       (10) = (8)

0011 ^= (XOR) 1010 = 1001
(3)  ^=       (10) = (9)

0100 ^= (XOR) 1010 = 1110
(4)  ^=       (10) = (14)
于 2012-10-14T10:00:08.427 回答