ビット演算子を使用したスワップの方法


方法1: 一時変数を使用したスワップ この方法では、一時変数を使用して値をスワップします。

def swap_using_temp(a, b):
    temp = a
    a = b
    b = temp
    return a, b

この方法では、a の値を temp に一時的に保存し、b の値を a に代入し、最後に temp の値を b に代入します。

方法2: 加算と減算を使用したスワップ この方法では、加算と減算を使用して値をスワップします。

def swap_using_add_sub(a, b):
    a = a + b
    b = a - b
    a = a - b
    return a, b

この方法では、ab の値を加算して a に代入し、その後、a から b を減算して b に代入します。最後に、a から再び b を減算して a に代入します。

方法3: ビット演算子を使用したスワップ この方法では、ビット演算子を使用して値をスワップします。XOR(排他的論理和)演算子を使用する方法が一般的です。

def swap_using_bitwise(a, b):
    a = a ^ b
    b = a ^ b
    a = a ^ b
    return a, b

この方法では、ab の値を XOR 演算子で交換します。XOR 演算子は、2つのビットが異なる場合に 1 を返し、同じ場合に 0 を返します。これにより、ab の値がスワップされます。

これらの方法を使用して値をスワップすることができます。どの方法を選ぶかは、プログラムの要件やパフォーマンスによって異なります。ビット演算子を使用したスワップは、特に制約のある環境や効率性が重要な場合に有用です。