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
	}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DQ_CODING

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值