原地交換兩個(gè)變量的值

第一種方法,大家會(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;

此方法 完美,推薦使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容