2011年11月14日 星期一

如何交換兩個變數,而不動用第三個變數? (C/C++) (C) (.NET) (C#)

http://www.cnblogs.com/oomusou/archive/2007/09/09/887337.html

若要兩數交換,可以這樣寫。

= x xor y
= x xor y
= x xor y

但執行速度上會比使用暫存變數來的慢些!

public class TestCode {
    public static void main(String[] args) {
        int A = 3;
        int B = 7;
        System.out.println("A:" + A + " B:" + B);
        A = A ^ B ;
        B = A ^ B ;
        A = A ^ B ;
        System.out.println("A:" + A + " B:" + B);
        );
    }   
}

沒有留言:

張貼留言