我也是新手,今天看到了乙個題 不用三方變數交換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 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特...