thanatos116
2014年10月25日 星期六
寫一個前置處理器的巨集,可交換兩個整數(如果你是屬於駭客級,就不要透過宣告在巨集外部的暫時變數)
#define swap(x,y) {x=x^y;y=x^y;x=x^y;} //a,b數值交換
x=x^y
//表示將 x xor y 之後的值存至x 又因為 xor有可逆性所以可以看做 x在這等式之後成為x與y的綜合體
y=x^y
//因為可逆性,所以將這個綜合體x與y結合,會還原成原本的x,此時將結果存為y
x=x^y
//此時的y內存的結果已經為一開始的x了,所以x^y的結果為 x與y的綜合體在與x做運算,得到一開始的y,存為x。
swap結束
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言