一篇文章介紹 符號運算的妙用

以後把看到的覺得有用的符號運算記錄下來。

符號運算效率會更高一點,雖然甚微,但是還是有的。

我記錄的都是實用的,要是用上自己都看不懂,就有點搬石頭砸自己的腳了。

 

# #  判斷 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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章