最近的工作需要大量的採用位操作符的**。其實專案本身沒有這樣的需求,不過現在我的職責是維護同事的**,而這位同事的偏好是採用位操作,沒辦法學習了。
無符號右移位操作符「>>>」在將bit串右移位時,從bit串的最左邊填充0,這和帶符號右移位操作符「>>」不同。「>>」在將bit串右移位時,從bit串的最左邊填充原來最左邊的位。也就是說,bit串原來最左邊的位是符號位,如果為1,則在帶符號右移時最左邊始終填充1;如果為0,則在帶符號右移時最左邊始終填充0。
移位操作符的例子見下表。
操作結果
說明00110010 << 2
11001000
右邊始終填充0
00110010 >> 2
00001100
結果一樣
00110010 >>> 2
00001100
10110010 >> 2
11101100
結果不同
10110010 >>> 2
00101100
「按位與」操作符「&」對兩個bit串按位進行邏輯與,「按位或」操作符「|」對兩個bit串按位進行邏輯或,「按位異或」操作符「^」對兩個bit串按位進行異或操作。運算規則如下表所示。
按位與按位或
按位異或
0 & 0 = 0
0 | 0 = 0
0 ^ 0 = 0
0 & 1 = 0
0 | 1 = 1
0 ^ 1 = 1
1 & 0 = 0
1 | 0 = 1
1 ^ 0 = 1
1 & 1 = 1
1 | 1 = 1
1 ^ 1 = 0
徹底理解java位操作符
無符號右移位操作符 在將bit串右移位時,從bit串的最左邊填充0,這和帶符號右移位操作符 不同。在將bit串右移位時,從bit串的最左邊填充原來最左邊的位。也就是說,bit串原來最左邊的位是符號位,如果為1,則在帶符號右移時最左邊始終填充1 如果為0,則在帶符號右移時最左邊始終填充0。移位操作符的...
java 位操作符
位運算的應用場景 因為位運算的運算效率比直接對數字進行加減乘除高很多,所以當出現以下情景且對運算效率要求較高時,可以考慮使用位運算。情況1 輸入乙個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。例如輸入5,因為5 的二進位制表示為101,所以輸出為2.解題思路 普通方法是將5轉換成...
java位操作符
無符號右移位操作符 在將bit串右移位時,從bit串的最左邊填充0,這和帶符號右移位操作符 不同。在將bit串右移位時,從bit串的最左邊填充原來最左邊的位。也就是說,bit串原來最左邊的位是符號位,如果為1,則在帶符號右移時最左邊始終填充1 如果為0,則在帶符號右移時最左邊始終填充0。移位操作符的...