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声明:引用は出典を明記してください!