在Java中,步骤^ = 1是什么意思?

时间:2015-01-13 06:31:24

标签: java

我知道^是Java中的xor运算符。但在以下情况下我无法理解。

int step = 0;
...
step ^=1;

来源:Google Code Jam 2014 (Participant's answer)

文件链接:here

5 个答案:

答案 0 :(得分:2)

^代表XOR运算符。

a ^= b相当于a = a ^ b

答案 1 :(得分:2)

它位于赋值运算符类别

之下
 += -= *= /= %= &= ^= |= <<= >>= >>>=

表示

^=按位异或和赋值运算符

step ^=1;step = step ^ 1;

相同

答案 2 :(得分:1)

step ^=1表示step = step xor 1。与评估为step += 1

step = step + 1类似

所以^ =是短手xor算子。

所以xor表说:

operand1   operand2    output
   0          0         0
   0          1         1
   1          0         1
   1          1         0

所以如果我的步数为1,则1 xor 1将为0。

答案 3 :(得分:1)

来自Java教程,

^ 假设整数变量A保持60,变量B保持13然后: 二进制 XOR 运算符如果在一个操作数中设置但不是两者都复制该位。(A ^ B)将给出49这是0011 0001

在你的情况下是,

step = step^1

结果得到step=1

http://www.tutorialspoint.com/java/java_basic_operators.htm

答案 4 :(得分:1)

正如其他人所指出的那样,step ^=1翻转step的最低位。这使偶数数字变大1,奇数数字变小1。

示例:

 0 --> 1
 1 --> 0
 7 --> 6
 6 --> 7
-3 --> -4