如何在不介入第三个变量的情况下实现两个数的交换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不介入第三个变量的情况下实现两个数的交换相关的知识,希望对你有一定的参考价值。
如何在不介入第三个变量的情况下实现两个数的交换:
1 package myeclipseFiles2; 2 3 public class Operator { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 int a=6; 8 int b=1; 9 System.out.println(a+":"+b); 10 11 //方法一:不借助第三个变量完成两个数的交换 12 a=a+b;//a=6+1 b=1 13 b=a-b;//a=6+1 b=6+1-1 14 a=a-b;//a=6+1-(6+1-1) b=6+1-1=6 15 System.out.println(a+":"+b); 16 17 } 18 19 }
异或^ :操作数相同为0 不同为1
本身与本身异或的结果为0
任何数和0异或的结果是那个数本身
异或^操作满足交换律
1 package myeclipseFiles2; 2 3 public class Operator { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 int a=6; 8 int b=1; 9 System.out.println(a+":"+b); 10 11 //方法二:不借助第三个变量完成两个数的交换 12 a=a^b;//a=1^6 b=1 13 b=a^b;//a=1^6 b=1^6^1=6 14 a=a^b;//a=1^6^6=1 b=6 15 System.out.println(a+":"+b); 16 17 } 18 19 }
以上是关于如何在不介入第三个变量的情况下实现两个数的交换的主要内容,如果未能解决你的问题,请参考以下文章