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++中具有廣泛的應用。