在计算机科学中,异或运算是一种常见的逻辑运算。异或运算在校验和、加密等方面有广泛的应用。在 C/C++ 中我们用 "^"
表示异或运算,它和 +,-,一样是需要两个操作数的运算符。使用代码
printf("%d", (a ^ b));
即可在计算机打印两个整数 a 和 b 异或的结果。
异或运算规则如下
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
两个整数进行异或运算,指的是它们转成二进制后(位数不同的在前面补 0),每一位相互异或的结果再转成十进制。
例如:
1 ^ 3 = 2 ,即 01 ^ 10 = 11
异或作为一种重要的运算,它有如下性质:
-
归零性 a ^ a = 0;
-
交换律 a ^ b = b ^ a;
-
结合律 a ^ b ^ c = c ^ b ^ a。
恭喜你现在已经学会异或运算啦!快来写一道题来练练手吧!
定义 x 为长度为 n 的数组 a 的美丽值,使得 x 满足下面的条件
x ^ a
1 ^ a
2 ^ a
3 ^ ... ^ a
n = 0
现在你得到了一个数组 a,请求出它的美丽值
(这里的 "^" 表示按位异或)