健忘工程師的筆記
2014年10月14日 星期二
xor swap
x ^ x = 0
x ^ 0 = x
x ^ y = y ^ x
x^(y^z) = (x^y)^z
void haha(int& x, int& y)
{
x = x ^ y;
y = x ^ y;
x = x ^ y;
}
y = (x ^ y) ^ y = x ^ 0 = x
x = (x ^ y) ^ x = (y ^ x) ^ x = y ^ ( x ^ x) = y ^ 0 = y
通常不建議用這種方式做swap.
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言