不使用中间变量实现变量交换
2015-07-13 17:27
211 查看
#include <stdio.h> #include <stdlib.h> void main() { //way1:使用中间变量 int a = 10; int b = 20; printf("交换之前:a=%d b=%d\n", a, b); int temp; temp = a; a = b; b = temp; printf("使用way1交换之后:a=%d b=%d\n", a, b); //way2:不使用中间变量 a = a+b; b = a-b; a = a-b; printf("使用way2交换之后:a=%d b=%d\n", a, b); //way3:不使用中间变量,异或运算 a = a^b; b = a^b; a = a^b; printf("使用way3交换之后:a=%d b=%d\n", a, b); }
注:异或规则:相同为0,不同为1
由此得到任何数与0异或都是其本身,保持不变。
另外异或满足交换律。
相关文章推荐
- UIProgressViewController学习记录
- 怎么注册成为滴滴快车的司机?
- 人生的意义 2015.6.25
- INFA各类变量
- SharePoint 2013 增加文件夹完整示例。
- 拐角矩阵
- Windows消息循环机制
- hadoop更换硬盘
- 如何检测整型相加溢出(overflow)
- Java的设计六大原则
- IOS中UIWebView和JavaScript交互
- Avangard Latin Squares
- 编程王道,唯“慢”不破
- linux内存条排查
- jQuery自动添加表单项的方法
- 【quick-cocos2d-x 游戏开发之一】开发工具sublime text及其强力插件QuickXDev
- redis 五种数据类型的使用场景
- A previous installation of Qt5 Visual Studio Add-in was detected. 解决方法
- WPF Scrollview模板
- 滴滴快车(专车、一号)司机注册报名加盟教程