java 交换两个数的值(临时变量,加减,异或)
Posted DQ_CODING
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 交换两个数的值(临时变量,加减,异或)相关的知识,希望对你有一定的参考价值。
临时变量
开发中一般使用此方式
加减
第二种写法:
//3.使用加减
d1=d1+d2;
d2=d1-d2;
d1=d1-d2;
System.out.println("d1="+d1+"\\td2="+d2);
异或(位运算符)
原理
^异或:相同为0,不同为1
总代码
class ExchangeNumber {
public static void main(String[] args) {
//交换两个变量的值
//方法1:使用临时变量
int num1=67;
int num2=32;
System.out.println("num1="+num1+"\\tnum2="+num2);//num1=67 num2=32
int test=num1;
num1=num2;
num2=test;
System.out.println("num1="+num1+"\\tnum2="+num2);//num1=32 num2=67
//方法2:使用加减的方式交换
//好处:不需要定义临时变量
//弊端:相加可能超出数据类型范围;只能适用于数值型
int num3=78;
int num4=22;
System.out.println("num3="+num3+"\\tnum2="+num4);//num3=78 num2=22
num1=num3+num4;
num3=num1-num3;
num4=num1-num4;
System.out.println("num3="+num3+"\\tnum4="+num4);//num3=22 num4=78
//方法3:使用位运算符号
//原理:n=(m^n)^m,所以如果要交换m和n就是n=(m^n)^n【把m的值赋值给n】
//弊端:只能适用于数值型
//写法1
int num5=33;
int num6=22;
System.out.println("num5="+num5+"\\tnum6="+num6);//num5=33 num6=22
int k=num5^num6;
num5=k^num5;
num6=k^num6;
System.out.println("num5="+num5+"\\tnum6="+num6);//num5=22 num6=33
//写法2:
int num7=77;
int num8=88;
System.out.println("num7="+num7+"\\tnum8="+num8);//num7=77 num8=88
num7=num7^num8;
num8=num7^num8;
num7=num7^num8;
System.out.println("num7="+num7+"\\tnum8="+num8);//num7=88 num8=77
//测试
int m=34;
int n=90;
System.out.println((m^n)^m);//90
}
}
以上是关于java 交换两个数的值(临时变量,加减,异或)的主要内容,如果未能解决你的问题,请参考以下文章