a,b两个值相互交换

本文介绍了三种不使用额外变量进行数据交换的方法:利用位运算的异或操作、加减法操作及其改进版,以及乘除法操作。讨论了各种方法的优缺点,并特别注意到了加减法操作可能导致的溢出问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 使用位运算,异或

a= a^b;

b=a^b;

a=a^b;

public static void quickSwap(int vaules[]){
   values[0] = values[0]^values[1];
   values[1] = values[0]^values[1];
   values[0] = values[0]^values[1];
}

2,加减操作符  但可能有溢出情况:a = a + b句,如果a和b都是比较大的两个数,则a = a + b是就会超界。

a = a + b;

b = a - b;

a= a - b;

同理

a=a*b;

b=a/b;

a=a/b;


3,对2的解决方法:

a=b+(b=a)*0;
现执行()里面的,他的优先级高
b=a
已经将a的值转给b
然后*0,值为0,
a=b+0

 

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值