不使用第三方變數交換2個數的值 新手閱

2021-07-29 06:22:48 字數 425 閱讀 9898

我也是新手,今天看到了乙個題 不用三方變數交換2個數。

想的方法也是 兩數隻差,或者乘積來交換,偶然看到書上有異或運算,連著異或3次可以直接交換,沒想到如此神奇.

異或:二進位制為上的數若相同則取1  不相同則取0

int a=2,b=3;

a=a^b;

b=a^b;

a=a^b;

語句非常之簡單,原理如下:

a的ascii碼值為010 而b為011

第一次異或: 010^011  為001 此時a為1

第二次異或:001^011   為010 此時b為2

第三次異或:001^010   為011 此時a為3

那麼 到此時 b的最終值為2  a為3 那麼交換成功- -   方法當然不止這一種哦!! 我也是新手,寫一下心得咯 因為書上並沒有講解用異或交換2個數的值

不使用第三方變數交換兩個變數的值

這需要進行位操作,必較麻煩的,在學習程式語言和進行程式設計的時候,交換兩個變數的值是經常要使用的。通常我們的做法是 尤其是在學習階段 定義乙個新的變數,借助它完成交換。如下 int a,b a 10 b 15 int t t a a b b t 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特...

不使用第三方變數交換兩個變數的值

這需要進行位操作,必較麻煩的,在學習程式語言和進行程式設計的時候,交換兩個變數的值是經常要使用的。通常我們的做法是 尤其是在學習階段 定義乙個新的變數,借助它完成交換。如下 int a,b a 10 b 15 int t t a a b b t 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特...

不使用第三方變數交換兩個變數的值

這需要進行位操作,必較麻煩的,在學習程式語言和進行程式設計的時候,交換兩個變數的值是經常要使用的。通常我們的做法是 尤其是在學習階段 定義乙個新的變數,借助它完成交換。如下 int a,b a 10 b 15 int t t a a b b t 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特...