或,與,異或,非奇淫技巧
|操作:兩個二進制數字按位取或運算,只要有一個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。需要注意的是對於計算機來講,二進制運算要快於除法運算。