給兩個數a和b,然後交換a和b的值。
方式一:通過臨時變了存放交換
int a = 2;
int b = 3;
system.out.println("a=" + a + ",b=" + b);
int temp = a;
a = b;
b = temp;
system.out.println("a=" + a + ",b=" + b);
方式二:通過加減計算交換
int a = 2;
int b = 3;
system.out.println("a=" + a + ",b=" + b);
a = a + b;
b = a - b;
a = a - b;
system.out.println("a=" + a + ",b=" + b);
方式三:通過異或運算交換
int a = 2;
int b = 3;
system.out.println("a=" + a + ",b=" + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
system.out.println("a=" + a + ",b=" + b);
總結:方式一是最常見的,可讀性高,但是需要在記憶體中存放臨時變數,但是對於現在來說,需要的記憶體空間很小,而且存放臨時變數的記憶體很快就會釋放,不存在問題。
方式二有缺陷,當兩個數相加之後,可能其結果超出了變數型別能表達的最大範圍,這個時候結果就會出問題,不推薦使用
方式三效率是最高的,但是可讀性不是很好。
在程式中我們應該盡可能的使用方式一,提高程式的可讀性。但是需要了解方式三,以及方式三的原理。
交換兩個數的幾種方法
這是最常用的交換兩數的方法 void swap 1 int a,int b 有兩種方法。1 採用加減的方法,這種方法容易越界 void swap 2 int a,int b 2 採用按位異或的方法 void swap 3 int a,int b 這兩種方法並不常用甚至有些時候容易出bug,但有時面試...
多種方法交換兩個數的值
方法1 程式例項 include void exchange int x,int y intmain 執行結果 方法2 include intmain 執行結果 此處通過巧用位操作符 按位異或 的方法,完成兩個數的轉化。按位異或操作符的口訣 相異為1,相同為0 三個按位異或的具體如下 注 以下二進位...
交換兩個數的方法
示例 如下 1 include 2 using namespace std 34 5 指標法 中間變數1 6 7void swap1 int pa,int pb 813 14 15 引用法 中間變數2 16 17void swap2 int ra,int rb 1823 24 25 相互加減法 26...