天天看點

java學習之------位運算符實作兩值交換

public class TestExer1{
	public static void main(String[] args){
		int m = 12;
		int n = 5;
		System.out.println("m:"+m+" n:"+n);
		
		//方法一:通過一個臨時變量
		int temp = m;
		m = n;
		n = temp;
		System.out.println("m:"+m+" n:"+n);
		//方法二:當m和n較大時,有可能出現精度損失
		m = m + n;//m=12 + 5
		n = m -n;//n = 17 - 5
		m = m - n;//m = 17 - 12
		System.out.println("m:"+m+" n:"+n);

		//方法三: 優點:沒有上面兩種方法的缺點; 缺點:不易了解。
		m = m ^ n;
		n = m ^ n;//(m ^ n) ^ n = m
		m = m ^ n;//(m ^ n) ^ m = n
		System.out.println("m:"+m+" n:"+n);
	}
}