小结一下:

给出两个变量:var a = 1, b = 2;

方法一:

a = a + b;

b = a - b;

a = a - b;

a, b 的值已经交换。

方法二:

a = a ^ b;

b = a ^ b;

a = a ^ b;

a, b 的值已经交换。

原理:异或运算,任意一个数与任意一个给定的值异或两次,其值保持不变。

方法三:

a = b + (b = a) * 0;  或者

a = (a + b) - (a = b);

a, b 的值已经交换。

转载于:https://www.cnblogs.com/wuzhenbo/archive/2012/04/25/2469223.html

不使用第三个变量交换两个变量的值相关推荐

  1. php比较两个变量的值_总结PHP不用第三个变量交换两个变量的值的几种方法

    "PHP不用第三个变量交换两个变量的值"这个题看到过好多次了,看来面试确实喜欢考这道题.今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充. 有些仅适用于字符串,方 ...

  2. C++不借助第三变量交换两个变量的值

    C++不借助第三变量交换两个变量的值 源代码: #include<iostream> using namespace std; int main(){int x,y;cout<< ...

  3. 不用额外变量交换两个整数的值

    题目 如何不用任何额外变量交换两个整数的值 基本思路 如果给定整数a和b使用如下三行代码即可交换a和b的值: a = a ^ b b = a ^ b a = a ^ b 如何理解这三行代码的具体功能呢 ...

  4. PHP中不用第三个变量交换两个变量的值

    相信大家在PHP面试或者学习中经常会遇到这个问题就是"不用第三个变量来交换两个变量的值",今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个 ...

  5. 不使用第三变量交换两个变量的值

    在 Java 中,经常会需要交换两个变量的值,我们一般是使用第三变量完成,比如 temp = a; a = b; b = temp; 这样的写法确实能达成目标,但因此而引入了第三变量,对资源的消耗增加 ...

  6. 不用引入第三变量交换两个变量的值

    前几天发现了一个问题:有人告诉我,要进行变量交换,就必须引入第三变量! 假设我们要交换a和b变量的值,如果写成 int a=5,b=10; a=b; b=a; 那么结果就是两个都是10,理由不言而喻. ...

  7. 不借助第三方变量交换两个变量的值(多种方法)

    转载自:https://blog.csdn.net/kangkermit/article/details/21371159 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码 ...

  8. 不允许创建临时变量交换两个变量的内容

    在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量.如果在没有临时变量的情况下,该如何做呢? 方法一:C语言提供的异或运算就可以实现这样的操作.异或运算符"^"也称&qu ...

  9. Java中三种方法交换两个变量的值

    1.中间变量 是最普也是最广泛使用的交换方式: 这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换. 2.加减运算 前提只能是数字 因为这种 ...

最新文章

  1. Java锁的种类以及辨析(二):自旋锁的其他种类
  2. POJ1904 强联通(最大匹配可能性)
  3. postman自动打开_postman第1讲-开篇:介绍与安装
  4. 复习笔记(一)——C++基础
  5. how you can go to attend eap freely?
  6. VTK:PolyData之PointCellIds
  7. SQL Server 查询数据库中所有的表名及行数
  8. mysql dp.cal 显示汉子_计算1到N中各个数字出现的次数 --数位DP
  9. Hadoop 系列之 1.0 和2.0 架构
  10. linux 防arp 带宽,linux下防arp
  11. linux root权限不够_Linux基础篇之用户管理
  12. 最全中文停用词表整理(1893个)
  13. redis下载安装教程(详细步骤)
  14. python爬取基金净值_Python爬虫周记之案例篇——基金净值爬取(上)
  15. WePhone手机软件已下架 疑因资金问题导致无法使用
  16. Android自定义view 滑动开关 支持左右滑动 适用于listview
  17. MySQL——我的学习笔记
  18. cancel java_Future.cancel()疑难杂症
  19. 7-2 多分支表达-数据奇偶判断
  20. 产品开发中,TR是技术评审节点。

热门文章

  1. JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
  2. 如何判断离散数组 是递增趋势_如何用切线技术判断市场趋势?
  3. java生成word 框勾_Java 使用模板生成 Word 文件---基于 Freemarker 模板框架
  4. map怎么转化dto_java实现Object和Map之间的转换3种方式
  5. python的类与模块_Python类与模块属性
  6. 教你保存在线视频文件
  7. iis服务器怎样配置多张证书,IIS配置多个ssl怎么做?怎么配置?
  8. 三级C语言上机考试试题与题解,全国计算机等级三级C语言上机试题逐题解析
  9. access后台链接mysql_ASP.NET连接 Access数据库的几种方法
  10. nutzwk oracle,NutzWk插件使用