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

步骤^=1在Java中是什么意思?,java,Java,我知道^是Java中的xor运算符。但我无法在下面的上下文中理解它 int step = 0; ... step ^=1; 资料来源: 文件链接:^代表XOR运算符 a^=b相当于a=a^b它属于赋值运算符类别,如 += -= *= /= %= &= ^= |= <<= >>= >>>= +=-=*=/=%=&=^=|==>>= 意味着 ^=按位异或和赋值运算符 步骤^=1与步骤=步骤^1相同步骤^=1表示步骤=步骤xor 1。类似于st

我知道
^
是Java中的xor运算符。但我无法在下面的上下文中理解它

int step = 0;
...
step ^=1;
资料来源:


文件链接:

^
代表XOR运算符


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

它属于赋值运算符类别,如

 += -= *= /= %= &= ^= |= <<= >>= >>>=
+=-=*=/=%=&=^=|==>>=
意味着

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


步骤^=1
步骤=步骤^1相同

步骤^=1
表示
步骤=步骤xor 1
。类似于
step+=1
,其计算结果为
step=step+1

所以^=是一种简写的异或运算符

所以xor表说:

operand1   operand2    output
   0          0         0
   0          1         1
   1          0         1
   1          1         0
因此,如果我的步骤是1,那么1或1将是0。

来自Java教程

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

你的情况是

step=步骤^1

结果得到
step=1


正如其他人所指出的,
步骤^=1
翻转
步骤
的最低有效位。这使得偶数变大,奇数变小

示例:

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

步骤=步骤^1?它与所有其他+=等一样。它执行将其值分配给步骤的操作。不确定问题是什么;既然你知道什么是异或,为什么要问这个问题?如果这是您要问的问题,那么它将始终反转
步骤的最低有效位?不知道^=赋值运算符类别中的运算符有什么错?这个问题很清楚@KickButtowski解决了我的困惑。谢谢。@Sashwat,thnx。你能给我写一个真实值的例子让它更清楚吗?@nanospeck你让它听起来像你知道它是XOR运算符,但你不知道XOR是做什么的。是这样吗?@nanospeck-检查此项以获得有关XOR运算符的更多详细信息。我想您可能已经知道,XOR在两个操作数之间执行按位XOR