第一種方法,大家會(huì)借助第三個(gè)變量來(lái)實(shí)現(xiàn):
如:tmp = A; A = B; B = tmp;
這種方法需要借助第三變量來(lái)實(shí)現(xiàn);
第二種方法是利用加減法實(shí)現(xiàn)兩個(gè)變量的交換:
如:A = A + B; B = A - B; A = A - B;
但是 如果 A + B 超出 A的范圍 ,會(huì)引起溢出。
第三種方法是得用位異或運(yùn)算來(lái)實(shí)現(xiàn),也是效率最高的一種,在大量數(shù)據(jù)交換的時(shí)候,效率明顯優(yōu)于前兩種方法:
如:A = A ^ B; B = A ^ B; A = A ^ B;
原理:利用一個(gè)數(shù)異或本身等于0和異或運(yùn)算符合交換率。
異或的意思就是:不同 才可以得1,否則為0
// 異或
// 0^0=0
// 1^1=0
// 1^0=1
// 0^1=1
假如 a = 2,b = 4。想將a和b的值互換,可以用一下賦值語(yǔ)句實(shí)現(xiàn):
a = a ^ b;
b = b ^ a;
a = a ^ b;
此方法 完美,推薦使用。