使用^ =操作在逻辑上究竟发生了什么?

时间:2012-10-14 09:52:47

标签: logic xor

在阅读了“当天的面试问题”后,我偶然发现了一个关于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.

我很难搞清楚这个......

1 个答案:

答案 0 :(得分:0)

这称为Bitwise XOR运算符。如果比较位的EITH是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)