關於異或運算交換值及其中的bug

或許有不少同窗會喜歡使用排序 a = a^b;效率 b= b^a;原理 a= a^b;bug 對於不知道原理的同窗,我舉一個相似的例子:運算符 a=a+b; b=a-b; a=a-b; 而後是其中的bug : 交換值常常會在排序中碰到,可是異或運算是比較危險的。當出現自身和自身異或的時候,結果是置0的; 既 a=a^a; a==0; 因此用以前判斷一下,再加一個三元運算符,雖然難度,可是會蠻帥的。
相關文章
相關標籤/搜索