交換兩個整數的三種方法

2022-10-10 23:24:15 字數 1714 閱讀 5326

package

com.zby.bubble;

/*** 三種方法交換兩個整數的值

* *

@author

zby * */

public

class

exchange

/*** 使用乙個臨時變數交換,優點:對於其他型別同樣適用。

* *

@param

a *

@param

b

*/public

static

void exchange1(int a, int

b)

/*** 重點:乙個整數異或另乙個整數兩次,得到的還是這個原來的數。優點:不引入臨時變數;缺點:只能對整數使用。

* *

@param

a *

@param

b

*/public

static

void exchange2(int a, int

b)

/*** 注意:加減法交換可能導致溢位,但是,沒影響!!!!!溢位去又溢回來,結果是對的,是可以放心用的!!!!!之前進入誤區以為溢位會有什麼問題,然而並沒有。

* *

@param

a *

@param

b

*/public

static

void exchange3(int a, int

b)

public

static

void

splitline()

}

----------華麗麗的分割線----------使用臨時變數法進行交換,引入第三方變數

交換之前:a=2147483647,b=2147483646交換之後:a=2147483646,b=2147483647使用臨時變數法進行交換,引入第三方變數

交換之前:a=99,b=100交換之後:a=100,b=99使用臨時變數法進行交換,引入第三方變數

交換之前:a=-2147483648,b=-2147483647交換之後:a=-2147483647,b=-2147483648

----------華麗麗的分割線----------使用異或法進行交換,不引入第三方變數

交換之前:a=2147483647,b=2147483646交換之後:a=2147483646,b=2147483647使用異或法進行交換,不引入第三方變數

交換之前:a=99,b=100交換之後:a=100,b=99使用異或法進行交換,不引入第三方變數

交換之前:a=-2147483648,b=-2147483647交換之後:a=-2147483647,b=-2147483648

----------華麗麗的分割線----------使用加減法進行交換,不引入第三方變數

交換之前:a=2147483647,b=2147483646交換之後:a=2147483646,b=2147483647使用加減法進行交換,不引入第三方變數

交換之前:a=99,b=100交換之後:a=100,b=99使用加減法進行交換,不引入第三方變數

交換之前:a=-2147483648,b=-2147483647交換之後:a=-2147483647,b=-2147483648

----------華麗麗的分割線----------

交換兩個變數的三種方法

public static void main string args num1 2,num2 1前提 兩個變數相加的值不能溢位 public static void main string args num3 20,num4 10異或 1.任意乙個變數x與其自身進行異或運算,結果為0,即x x 0...

五種方法交換兩個整數

備註 int 範圍 2 31 2 31 1 即 2147483648 2147483647 long long 範圍 2 63 2 63 1 即 9223372036854775808 9223372036854775807 第一種方法 三變數法 特點 通用性強,簡潔易懂 includeusing ...

交換兩個數的三種方法

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