C#基礎學習-交換兩個數字的值
阿新 • • 發佈:2019-01-22
//有兩個數字10、20,編寫程式交換兩個數字的值
int num1 = 10;int num2 = 20;
#region 第一種
int temp = num1 + num2;
num2 = temp - num1;
num1 = temp - num2;
#endregion
#region 第二種
//+- 相當於 |(或)^ (異或)
//加法 計算機中 0010+ 0001=0011
//減法 0010-0001=0001
//或運算 | 規則:只要有一位為1 結果就為1 0|0=0 0|1=1 1|1=1 1|0=1
//位運算 二級制每一位操作0010|0001=0011
//異或 ^ 規則: 相同是為0相異為1 0010^0001=0011
num1 = num1 | num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
#endregion
#region 第三種
int a = 10;
int b = 20;
a = b + (b = a) * 0;
//b = (a) + (a = b) * 0; 都可以改變過來
//程式碼從左往右執行 從上至下執行
//變數在記憶體中是壓棧的處理過程
//這種方法它只針對數字
//可移植性差 太抽象 不好理解
#endregion