1. 程式人生 > >如何在不介入第三個變量的情況下實現兩個數的交換

如何在不介入第三個變量的情況下實現兩個數的交換

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=6
15 System.out.println(a+":"+b); 16 17 } 18 19 }

如何在不介入第三個變量的情況下實現兩個數的交換