以後把看到的覺得有用的符號運算記錄下來。
符號運算效率會更高一點,雖然甚微,但是還是有的。
我記錄的都是實用的,要是用上自己都看不懂,就有點搬石頭砸自己的腳了。
# # 判斷 int 類型和 long類型 是奇數還是偶數
用符號 & ,這個符號是與的意思
首先在第一個問題上說爲什麼 符號運算要比算術運算效率更高,因爲首先計算機底層是二進制,就是非零就是一,算術運算最後也是轉成二進制的符號運算。如果你直接用符號運算,就省去了轉換的過程。
整數化成二進制,會是這樣的,偶數二進制末尾是 0,而 0 & 1 是 0,所以可以根據這個現象,來判斷整數是零還是奇數。
if(n & 1 == 0){
System.out.println("執行偶數操作");
}
# # << 左移代替 乘法
因爲二進制數字左移一次,代表乘以 2。
所以的 乘以 2的n次方的都可以換成 <<n
也就是說:1*2 的結果等於 1<<1 ; 1*4 等於 1 << 2
可以看 hashMap的源碼用來聲明默認空間大小的,也就是說 hashMap 的默認大小是 16.
# # 不借用第三個數交換兩個數
void swap(int x , int y)
{
x ^= y;
y ^= x;
x ^= y;
}