异或运算的妙用

异或运算是位运算的一种。我们知道位运算速度很快,同时因其运算的特点,给我们带来不同的解题思路来处理问题。

异或运算,可以用来实现两个数的交换,而不必担心越界问题;异或运算可以找出数组中只出现一次的值;异或运算可以找出从一个数组中任意删除的一个值。

 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 }

 

转载于:https://www.cnblogs.com/alpha19881007/p/201309052303_byalpha.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值