我已经在程序中看到了这一行。什么意思?
int a = 0;
a ^= 1 << vector[i][j];
第二行。如果有人可以解释这一点?
答案 0 :(得分:2)
我认为您想知道运算符^=
^
是XOR
例如,x ^= x
等于x = x ^ x
,即0。
上面的代码段中的代码执行移位,然后对结果进行XOR,最后将结果分配给a
。
示例:
a = 0
如果vector[i][j]
为2,则1 << 2
(按位左移)为100
(以二进制表示)。
在右侧,我们有100 ^ 000 == 100
,最后是a = 0b100
有用的链接:
答案 1 :(得分:0)
^
表示按位XOR 。 1 << n
表示将1
左移n
次(以位为单位)。因此,如果您有1 << 2
,则从二进制的001
开始,然后将1
位左移2次,使其变为二进制的100
(十进制为4)。当我说001
或100
时,请注意,在填满完整的32/64位之前,还有更多的前导0
。