基于异或(^)运算的数值交换运算

原创 2006年05月29日 11:34:00

设现在有两个变量A和B

要求不通过第三空间完成变量A和B的数值交换

首先讨论一下基于第三空间的数值交换方法

int tmp;

tmp = A;

A = B;

B = tmp;

现在我们讨论不通过第三空间的数值交换方法

A = A ^ B;

B = A ^ B;

A = A ^ B;

交换图解

优化后算法如下:

A ^= B;

B ^= A;

A ^= B;

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Java中异或运算实现两个整数的交换以及其功能函数实现

今天学习到一种超酷炫的交换两个整数的方法,给各位分享一下。异或运算属于位运算的一种,首先简单介绍一下异或预算的语法规则。 假设a与b为不相等的两个整数。 (1)a^a=0; (2)a^b=0; (3)...

java异或运算交换两个数的陷阱

我们知道,用异或运算可以不用定义中间变量就可以交换两个数。如下: int a=2; int b=3; System.out.println("交换前:a="+a+" b="+b); a...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

异或运算实现两个数的交换

通常的交换两个变量a,b的过程为 int temp; temp=a a=b; b=temp; 需借助上面的第3个临时变量temp. 采用下面的方...

异或运算实现两个数的交换

转载于:http://blog.csdn.net/heathyhuhu/article/details/12744407 通常的交换两个变量a,b的过程为 int temp;temp=aa=b;b=t...

使用异或运算实现两数交换

三种方法实现两数互换

用异或运算交换连个变量

在论坛的帖子里看到一个面试题,交换两个整数。以往知道的方法有两种,一是使用临时变量temp,二是两个整数相加减的算法。在帖子里发现了第三种算法,异或运算: a=a^b; b=b^a; a=b...

使用异或运算交换两个变量的危险

我们知道,在排序算法中经常会需要交换序列中的两个变量,常见有两种方法: 1.借助第三个临时变量 // 交换 int temp = array[i]; array[i] ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)