1. 程式人生 > >(位運算子)請自己實現兩個整數變數的交換 ^的特點 (面試題)

(位運算子)請自己實現兩個整數變數的交換 ^的特點 (面試題)

int a=10;
int b=20;
//方式1:借用第三方變數
int c;
c=a;
a=b;
b=c;
System.out.println("a:"+a+":"+"b:"+b);
//方式2:使用位異或實現
a=a^b;
b=a^b;
a=a^b;
System.out.println("a:"+a+":"+"b:"+b);
//方式3:使用a和b的和相減
a=a+b;
b=a-b;
a=a-b;
System.out.println("a:"+a+":"+"b:"+b);
//方式4:一句話搞定
b=(a+b)-(a=b);
System.out.println("a:"+a+":"+"b:"+b);