博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交换2个数值的方法
阅读量:6717 次
发布时间:2019-06-25

本文共 636 字,大约阅读时间需要 2 分钟。

如何交换2个变量的值?一般来说,想到的方法是再找一个临时变量,通过一种顺序存放的方式来达到交换值的效果。
比如有a,b这2个变量。取同类型的变量temp。
temp = a ; a = b ; b = temp ;
这样就完成了交换。
但这样做的话会多使用一个temp的内存。如果没有溢出的问题,可以尝试加减法。
a = a + b ; b = a - b ; a = a - b ;
换成数学运算来表示,a1 = a + b ; b1 = a1 - b = a + b - b = a ; a = a1 - b1 = a + b - a = b ;
完成整个运算无需temp。
还有一种方法,使用异或运算。
2个变量a和b。方法如下:
a = a^b ;  b =  b^a ; a = a^b ;
交换的过程:
a1 = a^b ; 
b1 = b^a1 = b^a^b = a ; 
a1 = a1^b1 = a^b^a = b ;
这里的b1与a1就是我们想要的。
/*----------------------- 关于异或运算 ---------------------*/
异或,相同为0,不同为1 。 
真值表:
a^b 0 1
0 0 1
1 1 0
根据真值表我们可以得到:a^a = 0 ; b^0 = b ;
假设t = 0011 ;那么 t^0000 = 0011 ^ 0000 = 0011 ;
       t^1111 = 0011 ^ 1111 = 1100 ;

转载地址:http://jmumo.baihongyu.com/

你可能感兴趣的文章
S3c2410_SDIO_调试笔记<一>
查看>>
zabbix监控windows tcp连接数
查看>>
Java5线程并发库之其他同步工具类
查看>>
MySQL5.5源码包和5.6源码包安装
查看>>
关于上报错误最简单的实现方式--利用图片
查看>>
知识图谱与问答系统
查看>>
我的友情链接
查看>>
linux开机启动jar
查看>>
重构:改善既有代码的设计 精彩书评二
查看>>
框架与CSRF防御
查看>>
Eclipse汉化
查看>>
MongoDB入门
查看>>
linux操作界面配置
查看>>
命名管道操作
查看>>
Linux下的磁盘使用情况
查看>>
python基础 -- acm
查看>>
android第一天
查看>>
湖南卫视邮件服务器架设方案
查看>>
LoadRunner11破解详解
查看>>
排序算法 时间、空间复杂度
查看>>