异或运算是位运算的一种。我们知道位运算速度很快,同时因其运算的特点,给我们带来不同的解题思路来处理问题。
异或运算,可以用来实现两个数的交换,而不必担心越界问题;异或运算可以找出数组中只出现一次的值;异或运算可以找出从一个数组中任意删除的一个值。
1 #include <iostream> 2 3 using namespace std; 4 5 void main() 6 { 7 //交换a与b 8 int a = 10; 9 int b = 5; 10 a = a ^ b; 11 b = a ^ b; 12 a = a ^ b; 13 cout<<a<<","<<b<<endl; 14 15 //找出只出现一次的数 16 int myArray[5] = {2,1,3,2,1}; 17 int mynum = myArray[0] ^ myArray [1] ^ myArray[2] ^ myArray[3] ^ myArray[4]; 18 cout<<mynum<<endl; 19 20 //找出被拿掉的一个数 21 int subArray[4] = {1,2,3,2}; 22 mynum = mynum ^ subArray[0] ^ subArray[1] ^ subArray[2] ^ subArray[3]; 23 cout<<mynum<<endl; 24 25 system("pause"); 26 return; 27 }