不用第三方变量如何交换两个数的值
来源:互联网 发布:捕鱼游戏源码搭建教程 编辑:程序博客网 时间:2024/05/03 03:55
如果要交换两个变量的值,我们首先想到的就是定义一个第三方变量暂存其中一个变量的值:
如果我们不使用第三方变量怎么交换两个变量的值呢?
1.利用两数之和减去另一个数的方式:
这样也能成功交换两个数的值,但这种方法,如果两个数很大,可能会超出类型范围,造成数据丢失精度。所以不常用。
2.利用位运算 ^ (异或):
异或的特点是:一个数据a与另一个数据b做异或运算之后,变成了另外一个数c,再读取这个数据就不是原来的数据了,我们如果再拿这个数据c和数据b异或一次,这个数据又变回原来的数据a。
即:a^b^b=a; a^b^a=b
所以我们可以利用这个特点交换两个数据:
异或运算不会产生进位,所以不会造成数据损失,并且异或运算是二进制之间的运算,效率也比较高,但是这种交换方式阅读性差。所以还是定义第三方变量比较常用
2 0
- 不用第三方变量如何交换两个数的值
- 不用第三个变量,如何交换两个变量的值
- 只用两个变量,不用第三方变量实现两个变量交换的值
- 交换两个数的值,不借助第三方变量.
- 交换两个数的值,不借助第三方变量
- 不用第三方参数交换两个数的方法
- 不用第三方变量交换两个int类型的值 php
- 不用第三个变量交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量实现交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 不用引入第三变量交换两个变量的值
- 交换两个变量的值,不用第三个变量
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- java中不用第三变量交换两个变量的值
- 不用第三个变量交换两个变量的值
- c++primerP29-----P51 基本内置类型,变量,复合类型
- 前端框架Vue.js的使用及具体页面跳转时的参数传递
- Python迭代器和生成器
- Filter过滤器(vue.js)
- 网络编程中的超时检测
- 不用第三方变量如何交换两个数的值
- MySQL中的触发器
- 视图学习之建立视图、授权、同义词创建
- 并查集模板题 The Suspects
- 【BZOJ2049】洞穴勘测(SDOI2008)-LCT真·模板题
- javamail之实现注册激活邮件
- Mac 配置java环境变量
- StackOverflowError和OutOfMemoryError区别
- Win10下的 Anaconda的安装以及 TensorFlow 的安装配置