运算符和两数的交换
(一)&和&&,|和||
&&和&:&&是左边为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;