運算符和兩數的交換
(一)&和&&,|和||
&&和&:&&是左邊爲false時,右邊不進行運算,結果直接爲false.&是還要對右邊進行運算.
||和|:||是左邊爲truee時,右邊不進行運算,結果直接爲true.|是還要對右邊進行運算.
(二)<<和>>,>>>
位運算效率高,因爲直接對二進制位進行操作.
<<:其實就是乘以2的移動的位數次冪.
>>:就是除以2的移動的位數次冪.(最高位爲1時,補1;最高位爲0補0)
>>>無論最高位爲1還是爲0,都補0.
求二進制負數的整數,將二進制減1取反.(已知一個二進制的整數求負數,取反,加1).
(三)^和兩數互換(不使用第三方變量)
^異或,一個數異或同一個數兩次,結果還是那個數.
不使用第三方變量的兩數互換:
n=n+m; m=n-m; n=n-m;//如果n和m的值非常大,易超出int範圍.
n=n^m; m=n^m; n=n^m;