int x=3,y=4;
x^=y^=x^=y;
會讓兩變數的值交換;
即x=4,y=3;
在Java
int x=3,y=4;
x^=y^=x^=y;
卻僅能一位換過去而已;
即x=4;
而另一個y呢?
卻會變成y=7;(咦?
這是基於兩者計算順序上的不同導致的結果~~
C++是整個"由右往左";......<=
Java是整個"由左往右";.....=>
C++是整個"由右往左";......<=
Java是整個"由左往右";.....=>
花點時間實際自己做一次,就會理解了~
註:
^=
是將兩數進行 XOR 運算(^);
並且將結果存到左方的變數(=);
^=
是將兩數進行 XOR 運算(^);
並且將結果存到左方的變數(=);
XOR
翻譯為"兩數在二進位下,逐一比對同位置的位元;
是否 \\不一樣\\ ;
另一解釋或記法為,[相同則0,相異則1];
翻譯為"兩數在二進位下,逐一比對同位置的位元;
是否 \\不一樣\\ ;
另一解釋或記法為,[相同則0,相異則1];