排他的論理和でswap処理を書いてみる
xorを用いたswap処理について知ったのでメモしておく。
(なかなかテクニカルな方法で驚いた。)
xorを用いたswap処理の記述例
/* swap.c */ include<stdio.h> int main() { int x = 128; int y = 256; printf("x = %d, y = %d \n", x, y); printf("Swap x y !\n"); x = x ^ y; y = y ^ x; x = x ^ y; printf("x = %d, y = %d \n", x, y); return 0; }
実行結果
x = 128, y = 256 Swap x y ! x = 256, y = 128