博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交换两个数值的方法,注意有【坑】,闲来无事,总结一下
阅读量:6555 次
发布时间:2019-06-24

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

hot3.png

作者:shede333

&&
版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][]


#交换两个数值的方法

题面:

设a,b两个整数值,交换两个a,b二者的值,
例如:
设 a=1, b=2,
交换后 a=2,b=1

这几种方法,网上也说过很多,但是都没注意这几种方法的【坑】,不要只顾着新奇方法,毕竟【可靠性】很重要,这里稍微记录下


##方法1

最简单的方法就是加一个中间量:

int c=a;a=b;b=c;

##方法2

使用异或运算 xor:

a = a xor b;  //a=3, b=2b = a xor b;  //a=3, b=1a = a xor b;  //a=2, b=1

注意:


##方法3

使用加法暂存

a = a + b;  //a=3, b=2b = a - b;  //a=3, b=1a = a - b;  //a=2, b=1

注意:

a,b的值为足够大的值,例如在int 16位的情况下, a,b 都为2^16,那么a,b相加就会出现溢出情况。
refer:

##其它方法

待补充

转载于:https://my.oschina.net/shede333/blog/360018

你可能感兴趣的文章
2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
查看>>
简明 MongoDB 入门教程
查看>>
.NET Core 3.0中的数据库驱动框架System.Data
查看>>
北大AI公开课2019 | 雷鸣:人工智能革命与机遇
查看>>
英特尔开源计算机视觉数据标签工具CVAT,加速数据注释
查看>>
SQL Server内存泄漏
查看>>
NoSQL生态系统——一致性RWN协议,向量时钟,gossip协议监测故障
查看>>
用Windows Live Writer发布日志到BlogBus
查看>>
解决公司服务器加入域中不能启动应用系统的问题
查看>>
解压缩 操作
查看>>
rsyslog收集nginx日志配置
查看>>
如何判断各种手机浏览器?
查看>>
consule服务注册和发现 安装 部署
查看>>
多个帐户都用root 来登录 怎么看另一个用户使用的那些命令
查看>>
Redis小记
查看>>
Map集合案例
查看>>
《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷
查看>>
C# for循环①护栏长度 ②广场砖面积 ③判断闰年平年
查看>>
mysql数据库中,查看数据库的字符集(所有库的字符集或者某个特定库的字符集)...
查看>>
LintCode刷题——打劫房屋I、II、III
查看>>