2つの変数値を交換します(3番目の変数は使用しません).
1011 ワード
C++
引用する
通常、2つの変数値の交換を実現するのは簡単で、3番目の変数を利用することはよく知られていますが、3番目の変数を使用できないとしたら?ビット演算を利用して問題を解決する必要があります.
げんり
2つの変数AとBがあると仮定し、A=0 xed、B=0 x 26であり、3番目の変数を借りなければ、3つのステップで値を交換することができます.
ステップ
結果
A = A^B
A = 0xcb; B = 0x26
B = A^B
A = 0xcb; B = 0xed
A = A^B
A = 0x26; B = 0xed
コード実装
#include
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 << " :" << endl;
cout << "A:" << A << endl;
cout << "B:" << B << endl;
}
int main()
{
t_exchange(66, 99);
system("pause");
return 0;
}
作者:コードの上で世界のブログの住所を見ます:https://www.jianshu.com/u/03297560b1f4声明:引用は出典を明記してください!