提高本身算法逼格的位運算

​在面試過程當中咱們經常會被問一些算法相關問題。若是能夠使用位運算解決。給面試官的印象分必定很高。還等什麼學起來;如下都是在刷題的時候經常使用的位運算。
雞湯:別人能夠作到的,憑什麼你作不到?

&運算

  • 全是1纔是1不然爲零;
  • 做用:1.判斷奇偶性 (n&1==1 奇數) 2.去除最後一位的1;n&(n-1)

^運算

  • 相同爲0,不一樣爲1;主要性質 a^0=a a^a=0
  • 做用:1.交換兩個數,a^=b;b^=a;a^=b;這樣就在不引入第三方變量的時候進行交換,試想若是在面試的時候作兩個數的交換你寫出的試着放方法面試官如何看你。(這小王八蛋確定背過題qaq) 2.其次這個性質還能夠用來加密。a^salt獲得一個密文x;x^salt就能夠獲得加密前的明文;3.判斷兩個數是否相等a^b ==0

>>右移 << 左移

  • 右移>>至關於除2;左移<<至關於乘2
  • 做用:1.在書寫二分算法的時候後使用。2.在hashmap中容量是2的整數倍緣由就是它裏邊用的是位運算。

~非

  • 做用:1.取負數 ~a+1
相關文章
相關標籤/搜索