C++中的XOR运算符(^)主要用于按位异或操作。它接受两个整数作为操作数,并对它们的每个二进制位执行异或操作。如果两个相应的二进制位相同,则结果为0,否则为1。
XOR运算在C++中有多种用途,以下是一些常见的应用场景:
#include <iostream>
int main() {
int plaintext = 0b1101;
int key = 0b1011;
int ciphertext = plaintext ^ key; // 0b0110
std::cout << "Plaintext: " << plaintext << std::endl;
std::cout << "Key: " << key << std::endl;
std::cout << "Ciphertext: " << ciphertext << std::endl;
return 0;
}
位操作和翻转:XOR运算可以用于翻转整数的某些位。例如,要将一个整数的最低有效位(LSB)翻转为1,可以使用XOR运算:n = n ^ 1
。
循环移位:XOR运算可以用于实现循环移位操作。例如,将一个整数向右循环移位一位:n = n ^ (n >> 1)
。
判断奇偶性:XOR运算可以用于判断一个整数的奇偶性。如果整数与1进行XOR操作的结果为1,则该整数为奇数;如果结果为0,则该整数为偶数。
#include <iostream>
int main() {
int number = 5;
if (number & 1) {
std::cout << number << " is odd." << std::endl;
} else {
std::cout << number << " is even." << std::endl;
}
return 0;
}
A ^ B
计算得到。请注意,XOR运算具有以下性质:
a ^ b = b ^ a
(a ^ b) ^ c = a ^ (b ^ c)
a ^ a = 0
和 a ^ 0 = a
a ^ b = c
则 a ^ c = b
和 b ^ c = a
这些性质使得XOR运算在C++中具有广泛的应用。