C++ Xor运算符是如何工作的

C++ Xor运算符是如何工作的,c++,C++,谁能解释一下xor运算符在这两种情况下是如何工作的 1. Find the kth Grey Code k^(k>>1) 2. Find the neighboring corners of a corner in a cube: rep (i, number_of_corners) { rep (j, N) { corners[i].sum += corners[(i ^ (1 << j))].weight;

谁能解释一下xor运算符在这两种情况下是如何工作的

1. Find the kth Grey Code  k^(k>>1)
2. Find the neighboring corners of a corner in a cube:
rep (i, number_of_corners) {
            rep (j, N) {
                corners[i].sum += corners[(i ^ (1 << j))].weight;
            }
        }
1。查找第k个灰色代码k^(k>>1)
2.查找立方体中角点的相邻角点:
代表(i,角数){
代表(j,N){

角点[i].sum+=corners[(i^(1xor)是一个具有以下真值表的位运算符:

0 ^ 0 == 0
1 ^ 0 == 1
0 ^ 1 == 1
1 ^ 1 == 0
这就是
x^y
中两个数字
x
y
中的每一位所发生的情况

异或[XOR]是一种逻辑运算,仅当两个输入不同时才输出true(一个为true,另一个为false)

示例:
1异或1=0
1异或0=1
0异或1=1
0异或0=0
1110 xor 1001=0111(这相当于不带进位的加法)


欢迎来到这里。这不是可执行的C++代码。你的问题有点…不具体。请看这个:我知道,但是我很想知道XOR如何在灰色代码示例中找到正确答案。谢谢。