码迷,mamicode.com
首页 > 其他好文 > 详细

如何在不介入第三个变量的情况下实现两个数的交换

时间:2017-12-05 15:27:22      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:bsp   void   pre   异或   class   ack   string   system   font   


如何在不介入第三个变量的情况下实现两个数的交换:
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 }

 

如何在不介入第三个变量的情况下实现两个数的交换

标签:bsp   void   pre   异或   class   ack   string   system   font   

原文地址:http://www.cnblogs.com/ztt0918/p/7987023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!