交换两个变量的方法

一、有临时变量

例如交换两个 int 变量 a,b

int a,b;
int temp;//创建临时变量
 temp =a ;
 a= b;
 b=temp;

二、不创建临时变量

1、加减法

    int a= 9;
	int b =6 ;
	a= a + b;//执行后a= 15
	b = a - b;//b=15-6=9
	a = a - b;//a=15-9=6
	//执行完后a= 6, b= 9;
	//该方法的不足是,当a,b 值很大时,a+b的值
	//可能会溢出;

2、乘除法(类似于加减法)

a = a * b;
b = a / b;
a = a /b;

3、按位异或法(不会溢出)

在计算机中,异或简单地来说就是同为0,异为1.
即9^9=0;
6^6=0;
6^9=1;
异或运算存在交换律和结合律

int a=9;
int b=6;
a = a ^ b;
b = a ^ b;//b=(a^b)^b;由结合律的b=a^(b^b)=a
a = a^ b;//a=(a^b)^a=(a^a)^b=b
//a^a 的值为0,0与其他数异或为原数

如果上面的理解不了,我们可以化为二进制来举例

a=9,二进制为1001
b=6,二进制为0110
a=a^b=(10010110异或)1111
b=a^b=11110110异或)1001
a=a^b=11111001异或)0110
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值