C++
算法
引言
在通常情況下胆屿,實現(xiàn)兩個變量值的互換很簡單,大家都知道利用第三個變量婿牍,但是,如果不能夠使用第三個變量呢惩歉?我們就需要利用位運算來解決問題等脂。
原理
假設(shè)有兩個變量A和B, A = 0xed, B= 0x26,如果不借助第三個變量俏蛮,我們可以通過以三個步驟實現(xiàn)互換他們的值;
步驟 | 結(jié)果 |
---|---|
A = A^B | A = 0xcb; B = 0x26 |
B = A^B | A = 0xcb; B = 0xed |
A = A^B | A = 0x26; B = 0xed |
代碼實現(xiàn)
#include <iostream>
using namespace std;
void t_exchange(int A, int B)
{
cout << "初始值:" << endl;
cout << "A:" << A << endl;
cout << "B:" << B << endl;
A = A^B;
B = A^B;
A = A^B;
cout << "交換后的結(jié)果:" << endl;
cout << "A:" << A << endl;
cout << "B:" << B << endl;
}
int main()
{
t_exchange(66, 99);
system("pause");
return 0;
}
作者:碼上看世界
博客地址:http://www.reibang.com/u/03297560b1f4
聲明:引用請注明出處上遥!