算法中常用的位操作

或,與,異或,非奇淫技巧

|操作:兩個二進制數字按位取或運算,只要有一個1則最後結果爲1;
&運算:兩個二進制數字按位取與運算,只有兩個都是1則最後結果爲1;
^運算:兩個二進制數字按位取異或運算,兩個數相同取0不相同取1;基於這樣的性質可以得到一個異或的特點,那就是相同的兩個數異或爲0,其中一個數爲0時異或的結果是原來的數。
~運算:對一個二進制數字按位取非運算,即0和1互換。

1、轉換大小寫

('a' | ' ') = 'a'
('A' | ' ') = 'a' 
//轉換成大寫
('b' & '_') = 'B'
('B' & '_') = 'B'

2、大小寫互換

('d' ^ ' ') = 'D'
('D' ^ ' ') = 'd'

n&(n-1)

這是非常常見的一個操作,用以消除數字 n 的二進制表示中的最後一個 1。比如,我們可以不斷地做這樣的操作計算數字n的二進制表示有多少個1。需要注意的是對於計算機來講,二進制運算要快於除法運算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章