如何在不介入第三個變量的情況下實現兩個數的交換
阿新 • • 發佈:2017-12-05
16px bsp file 相同 rate cli 交換 ron eclips
如何在不介入第三個變量的情況下實現兩個數的交換:
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=615 System.out.println(a+":"+b); 16 17 } 18 19 }
如何在不介入第三個變量的情況下實現兩個數的交換