编程语言面试题之新版javase基础语法篇之运算符《下》

写个⽅法,传递两个⾮0的int数值进去,实现变量交换的⽅式,有⼏种⽅式?

简介:java数据类型划分
考点:java基础类型的划分和运算

⽅式⼀

 public static void swap(int a, int b){
 System.out.printf("a=%d, b=%d",a,b);
 a = a + b;
 b = a - b ;
 a = a - b;
 System.out.printf("\na=%d, b=%d",a,b);
 }

⽅式⼆ 异或运算 (⼀个数与另⼀个数异或两次是其本身, ⼀个数和⾃身异或结果是0 )

public static void swap(int a, int b){
System.out.printf("a=%d, b=%d",a,b);
a = a + b;
b = a - b ;
a = a - b;
System.out.printf("\na=%d, b=%d",a,b);
}
public static void swap2(int a, int b){
System.out.printf("a=%d, b=%d",a,b);
a = a^b; // a1 = a^b
b = b^a; // b = b^a^b
a = a^b; // a = a1^b = a^b^a
System.out.printf("\na=%d, b=%d",a,b);
}
解释:
a1=a^b
b=b^a1=b^a^b=a
/
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页
实付 79.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值