不用中间变量实现交换数据
2014-10-17 09:22
239 查看
第一种方法:使用相加、相减来实现,比如:
int x=1,y=2;
x=x+y;
y=x-y;
x=x-y;
第二种方法:使用异或运算,比如:
原理就是数字A异或B两次,就得到A。而B被A异或两次,就得到B。
int x =
1;
int y
= 2;
x = x^y;
//x被y异或一次
y = x^y;
//此时x存放的是x与y的异或,因此相当于被y又异或一次,x被y异或两次,得到x并赋给y
x = x^y;
//此时x存放的是x与y的异或,而y存放的就是x的值,因此再异或一次y就相当于异或x一次就得到x
int x=1,y=2;
x=x+y;
y=x-y;
x=x-y;
第二种方法:使用异或运算,比如:
原理就是数字A异或B两次,就得到A。而B被A异或两次,就得到B。
int x =
1;
int y
= 2;
x = x^y;
//x被y异或一次
y = x^y;
//此时x存放的是x与y的异或,因此相当于被y又异或一次,x被y异或两次,得到x并赋给y
x = x^y;
//此时x存放的是x与y的异或,而y存放的就是x的值,因此再异或一次y就相当于异或x一次就得到x
相关文章推荐
- 两个数间的交换(按位操作不用中间变量temp即可实现两个数据的交换)C++按位与运算交换数据vs2013环境
- 不用中间变量实现交换
- 不使用中间变量实现数据交换
- 【C++】怎样不用中间变量temp 实现两个数交换
- JS实现不用中间变量temp 实现两个变量值得交换方法
- [C/C++] 怎样不用中间变量temp 实现两个数交换
- [转][C/C++] 怎样不用中间变量temp 实现两个数交换
- 【C++】怎样不用中间变量temp 实现两个数交换
- 不用中间变量实现俩个数交换
- 常见面试题,交换两个整形变量不用中间变量怎样实现?
- 由论坛上关于不用变量实现STRLEN函数和宏定义2个数据进行交换
- 怎样不用中间变量temp 实现两个数交换
- 不用中间变量实现交换
- 不用中间变量完成数据的交换
- 不用中间变量实现交换swap的问题
- 不用临时变量 实现两个变量之间的数据交换
- 不用中间变量实现交换
- 怎样不用中间变量temp 实现两个数交换
- 不用中间变量实现交换
- 怎样不用中间变量temp 实现两个数交换