XOR 這個運算是一種互斥運算, 簡單來講 兩個bit一樣輸出為1, 不一樣則為0
真值表:
X--A--B
1--0--0
0--1--0
0--0--1
1--1--1
兩個數你把他排成binary, ex: A=0010, B=0100, 則X=A XOR B=A^B
X = 1001 很好玩吧
剛剛逛網頁時候 發現這篇 利用XOR來作變數交換的例子 (來源網頁 http://codingnote.blogspot.com/2008/04/xor.html)
當我們要implement SWAP function
只要先把 B=A^B --> A=A^B --> B=A^B
For example (in C language)
void Swap(int *a, int *b)
{
*b = *b^*a;
*a = *a^*b;
*b = *b^*a;
}
以後加到我的utils裡頭
沒有留言:
張貼留言