`
soboer
  • 浏览: 1310105 次
文章分类
社区版块
存档分类
最新评论

不用临时变量交换两个变量的值

 
阅读更多

大家对于异或(XOR)的如下性质应该很熟悉:

(X XOR Y) XOR Y = X
(X XOR Y) XOR X = Y

我们可以利用异或(XOR)的这个性质来实现不用临时变量交换两个变量的值。具体代码很简单:

voidSwap(int&x,int&y)
{
x
=x^y;
y
=x^y;
x
=x^y;
}
分享到:
评论

相关推荐

    JavaScript两个变量交换值的实现方法

    本文主要描述,如何不使用中间值,将两个变量的值进行交换。 一、普通做法 var a = 1, b = 2, tmp; tmp = a; a = b; b = tmp; 普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存。这样的做法直观...

    JavaScript交换两个变量方法实例

    这篇文章主要介绍了JavaScript交换两个变量方法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在平时的业务开发或者面试过程中,经常会遇到交换两个变量...

    JavaScript交换两个变量值的七种解决方案

    下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变另一个变量值, 最后改变原修改的变量值 比如这个 a += b; b = a - b; a

    BAT批处理脚本-加密解密-交换两个变量的值而不使用临时变量.zip

    为避免误触发,有些改为了txt格式,使用时请自行查看业务然后改为bat格式即可。

    不使用第三变量交换C程序

    在C语言中,我们对两个变量交换都使用临时的第三变量,这个小程序没有使用第三变量进行交换,给了我们一个很好的思路

    python交换两个变量的值方法

    大部分语言,例如c语言,交换两个变量的值需要使用中间变量。 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的交换 (a,b) = (b,a) 对于它的交换原理我深感好奇,因为这意味着python...

    两个数据的交换

    对于两个数据交换,我们最常用的算法是: { temp = A; A = B; B = temp; } 这种算法采用一个临时变量temp,做中间媒介;有时候你是否想过一个问题不要临时变量能实现这个交换吗?

    C#不借助第三个变量实现两整数交换

    c#中实现两个int变量的数值互换,在借助第三个变量做临时载体的情况下,非常简单。  int a = 10;  int b = 5;  int c ;  c = a;  a = b;  b = c;  如果不借助第三方变量,有几种实现的方法:  1....

    JavaScript程序设计课件:基本语法综合练习.pptx

    1、交换两个变量的值 2.4. 综合练习 1、交换两个变量的值 案例分析: 需要一个空的临时变量; 把变量1给临时变量; 把变量2给变量1; 把临时变量的值给变量2. 2.4. 综合练习 2、根据输入的年份计算年龄 在页面中弹出...

    Python实现变量数值交换及判断数组是否含有某个元素的方法

    先说变量数值交换,从C语言开始,我们就知道要先设置一个临时变量,再把某元素的值覆盖此临时变量,避免临时覆盖等,如果不设置临时变量,还有位运算的交换形式 然而Python中根本就不用这么复杂,如果要交换变量e1,...

    无参交换 —— 据说是交换的最高境界.txt

    将两个变量的值互相交换,但不允许借助任何其他变量临时存放其中的任何一个变量值。这称为“无参数交换”。 据说是交换的最高境界。

    c-------------------lab------------------assignment

    问题3 WAP使用临时变量和不使用临时变量来交换两个数字。没有临时变量临时变量作业2问题1 WAP输入一个十进制数(以10为基数)并显示其十六进制和八进制等效项。问题2 WAP检查给定数字是偶数还是奇数。 a)使用if-...

    知名公司数据结构笔试题及答案

    10.给两个变量,如何找出一个带环单链表中是什么地方出现环的? 11.哈希表和数组的定义,区别,优缺点。 12.链接表和数组之间的区别是什么? 任选一门语言,当场定义二叉排序树数据结构,写出两个函数:初始化...

    你必须知道的495个C语言问题

    它不需要临时变量就可以交换a和b的值。 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序呢? 3.6 可是&&和||操作符呢?我看到过类似while...

    Quadsort是一种稳定的非递归自适应合并排序,它比quicksort更快。-C/C++开发

    传统上,大多数排序算法都是使用二进制交换设计的,其中使用第三个临时变量对两个变量进行排序。 通常如下所示。 if(val [0]> val [1]){tmp [0] = val [0]; val [0] = val [1]; val [1] = tmp [0]; 取而代之的是,...

    跟我学Java面向对象程序设计技术及应用——应用冒泡排序算法实现数组元素排序的Java程序实现示例.pdf

    杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 1/29 ... /** * 定义一个变量,用来存储临时的数据 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作

    世界500强面试题.pdf

    1.5.6. 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数 ....... 116 1.5.7. 输入一个表示整数的字符串,把该字符串转换成整数并输出.............. 118 1.5.8. 给出一个数列,找出其中最长的单调...

Global site tag (gtag.js) - Google Analytics