Posted on 2009-10-12 14:09
Prayer 閱讀(2422)
評論(0) 編輯 收藏 引用 所屬分類:
算法
發現一個新知識,介紹給大家:
二進制異或運算:兩者相等為0,不等為1.
這樣我們發現交換兩個整數的值時可以不用第三個參數。
如a=11,b=9.以下是二進制
a=a^b=1011^1001=0010;
b=b^a=1001^0010=1011;
a=a^b=0010^1011=1001;
這樣一來a=9,b=11了。
舉一個運用, 按一個按鈕交換兩個mc的位置可以這樣。vb
mybt.onPress=function()
{
mc1._x=mc1._x^mc2._x;
mc2._x=mc2._x^mc1._x;
mc1._x=mc1._x^mc2._x;
//
mc1._y=mc1._y^mc2._y;
mc2._y=mc2._y^mc1._y;
mc1._y=mc1._y^mc2._y;
}
這樣就可以不通過監時變量來傳遞了。