兩個數值互換的三種演算法

2021-07-04 03:15:31 字數 445 閱讀 8267

方法一:引入乙個臨時變數t

t = a;

a = b;

b = t;

方法二:相加減(有數值越界風險)

a = a + b;

b = a - b;

a = a - b;

方法三:異或運算

a = a ^ b;

b = a ^ b;

a = a ^ b;

說說異或運算,就是兩個數進行異或運算,先轉換成二進位制數,再進行異或。當二進位制位數上的數相異時為1,相同時為0。

例如0100^0101,得到的值是0001。

根據異或運算的概念可知,兩個相同的數進行異或運算,得到的一定是0。因為他們各位上的值都一樣。乙個數和0進行異或運算,得到的一定還是那個數。

另外,多個數進行異或運算,先算哪兩個都行,不分優先順序。

綜上所述,a^b^b就相當於a^0,也就是a

C語言 互換兩個數的值的三種方法

我在第一次c語言學習的過程中,對於c語言的認識不夠深刻,我覺得這種解法已經非常厲害。畢竟能將簡單的兩個數的交換用計算機的邏輯編寫出來,並實現正確執行.int main 然而,通過這兩天的學習,我發現前一種方法在實踐中並不完美。這段 在執行的過程中會建立乙個臨時變數,多佔了一塊記憶體空間。對記憶體的利...

交換兩個數的三種方法

1.使用臨時變數 public static void main string args throws exception2.不使用臨時變數 加減法 注意int範圍 public static void main string args throws exception3.不適用臨時變數 使用位運算...

交換兩個數的值的方法 三種

採用中間變數c,來承接a的值,再將a的值設定為b,最後將中間變臉c的值設定到b中。int a 10 int b 20 int c a a b b c system.out.println a a system.out.println b b 輸出結果為 a 20 b 10原理 為了方面說明,將a,b...