位與 ( &) 算法
第一個操做數的的第n位於第二個操做數的第n位若是都是1,那麼結果的第n爲也爲1,不然爲0 spa
位或 ( | ) string
第一個操做數的的第n位於第二個操做數的第n位 只要有一個是1,那麼結果的第n爲也爲1,不然爲0class
位異或 ( ^ ) 經驗
第一個操做數的的第n位於第二個操做數的第n位 相反,那麼結果的第n爲也爲1,不然爲0 數字
位非 ( ~ ) 位運算
被操做數的第n位爲1,那麼結果的第n位爲0,反之。
幾個經驗述說:
若是算法中能用到位運算就用,沒有比這個更快的:
一、當相同元素異或時,其運算結果爲0, N ^ N = 0
二、當不一樣元素異或時,其運算結果爲非0, N ^ M != 0
三、任何數與數字0進行異或運算,其運算結果爲該數自己 N ^ 0 = N