if (a != b) { a = a ^ b; b = a ^ b; a = a ^ b; }
おお、こんなやり方があったのか。
同じ値で二回排他的論理和をとると元の値に戻るってヤツですかね。ま、今時役立つとは思えないけど、少ないメモリでやりくりしていた時代の知恵、おもしろいなぁ。
追記
XOR交換アルゴリズムというらしい。
if (a != b) { a = a ^ b; b = a ^ b; a = a ^ b; }
おお、こんなやり方があったのか。
同じ値で二回排他的論理和をとると元の値に戻るってヤツですかね。ま、今時役立つとは思えないけど、少ないメモリでやりくりしていた時代の知恵、おもしろいなぁ。
XOR交換アルゴリズムというらしい。