首页 > 其他分享 >交换两个int变量的值不能使用第三个变量

交换两个int变量的值不能使用第三个变量

时间:2023-01-17 15:35:36浏览次数:25  
标签:变量 int 第三个 011 异或 101 运算

题目本身只考虑整型变量例如a = 3,b = 5;

两种思路

方法一:直接运算

int a = 3;
int b = 5;
a = a + b;
b = a - b;
a = a - b;//此时转换完毕 

  由于是整型变量直接运算,缺点比较明显,两个整型变量过大时容易溢出,只能解决部分运算

方法二:异或位运算

int a = 3;//011
int b = 5;//101
a = a^b;  //按位异或结果为110
b = a^b; //101和110异或是011 此时b的值是3
a = a^b; //110和011异或结果为101 此时a的结果为5

  此算法原理:任意一个数与任意一个给定的数异或两次,其值不变。不过这个算法可读性较差,执行效率不高。

一般情况下我们都是使用第三个变量的方法,代码的可读性更高,执行效率也优于位运算的算法。

标签:变量,int,第三个,011,异或,101,运算
From: https://www.cnblogs.com/cxyo/p/17057902.html

相关文章