交换a、b不用第三个参数
2014-02-18 22:49
183 查看
方法一 加减运算:
方法二: 异或
异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0。
总结 :其原则是,通过一个可逆运算,将 a和b运算的结果赋值给其中一个,而另一个还是原值,再通过可逆运算,反推。
参考:http://blog.csdn.net/lpt19832003/article/details/5334688
{
int a = 3; int b = 23; cout<< "a="<<a<<endl; cout<< "b="<<b<<endl; a = a+b; b = a-b; a = a-b; cout<< "a="<<a<<endl; cout<< "b="<<b<<endl;
}
方法二: 异或
异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0。
{ int a = 2, b = 6; a = a ^ b; b = b ^ a; a = a ^ b; printf("a = %d b = %d/n", a, b); }
总结 :其原则是,通过一个可逆运算,将 a和b运算的结果赋值给其中一个,而另一个还是原值,再通过可逆运算,反推。
参考:http://blog.csdn.net/lpt19832003/article/details/5334688
相关文章推荐
- 不用第三个变量交换两个参数值得5种方法
- 不用第三个参数交换两个数a和b
- 不用定义第三个变量来实现两个数的交换
- 一种不用参数交换两变量值的方法
- C:两个数直接交换,不用第三个临时变量
- 由“不用第三个变量,直接交换两个…
- 在不用第三方参数的情况下,交换两个参数的值
- 不用第三个变量实现a,b的值交换
- * java 中的数组 对象数组 以及main方法中的参数 x y不用中间参数实现交换
- C++[算法]不借助第三个参数,交换两个数的值
- 每日一题:不适用第三个变量,实现交换两个输入参数
- [c]不用第三个数,去交换二个数的位置。
- 不用第三个参数调换整数a和b(算法)
- 用异或运算符实现不用第三个临时变量交换两个变量的值
- 不用第三个变量交换两个变量
- 不用第三个变量实现a,b的值交换
- * java 中的数组 对象数组 以及main方法中的参数 x y不用中间参数实现交换
- 每日一题:不适用第三个变量,实现交换两个输入参数
- 交换两个数(不用定义第三个变量哦)
- 不用第三个变量就能交换两个变量值的五个方法