不用临时变量直接交换两个数的值
来源:互联网 发布:淘宝店铺描述 编辑:程序博客网 时间:2024/05/21 19:56
以前偶尔从同学那里知道原来交换两个数的值并不一定需要临时变量,直接用这个两个数就可以直接交换,但当时没有仔细记住,突然想起来就去搜了一下,发现不止一种方法,现总结如下:
方法一:利用C语言提供的异或运算
a = a ^ b;
b = b ^ a;
a = a ^ b;
原理:第一步执行了a = a ^ b;则第二步b = b ^ a就相当于b = b ^ (a ^ b) = a ^ b ^ b = a ^ 0 = a;第三步a = a ^ b就相当于a = (a ^ b) ^ (b ^ (a ^ b)) = b。
也可以将三条语句缩写为一条a ^= b ^= a ^=b;
方法二:只利用加减法来实现
a = a + b;
b = a - b;
a = a - b;
方法三:利用算术运算符的结合顺序(自左至右)
p = p + q - (q = p);
(此方法经验证是错误的,因为在计算的过程中先将q赋值为p,然后算出的结果就为p = p + p - p = p,所以此行代码只是将q赋值为了p,p的值并没有改变)
原来在编程的过程中除了那些常规的做法外可以有很多小技巧的,暂时不知道到底有什么用,就是觉得很神奇,搜集了一下,嘿嘿
0 0
- 不用临时变量直接交换两个数的值
- C:两个数直接交换,不用第三个临时变量
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值(C实现)
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- 不用临时变量交换两个数的值
- Android 自定义View(一)
- 来自前苹果高管Heidi Roizen的经验之谈
- redhat 配置 yum(本人亲测)
- sharepoint2013列表中的字段无法删除的解决办法
- 在现有基础上提升网站SEO流量(5人团队)
- 不用临时变量直接交换两个数的值
- HTTP头字段总结
- IE7之前版本创建XHR对象
- System.Windows.Markup.IQueryAmbient 在未被应用的程序集中定义
- 第六章、Tiny4412 U-BOOT移植六 Nand Flash源码分析
- 快速排序
- 你家的WiFi信号强吗?
- android学习--TabHost
- Android Floating App的实现