java位操作符

2021-08-25 10:34:03 字數 784 閱讀 2853

無符號右移位操作符「>>>」在將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 位操作符

位運算的應用場景 因為位運算的運算效率比直接對數字進行加減乘除高很多,所以當出現以下情景且對運算效率要求較高時,可以考慮使用位運算。情況1 輸入乙個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。例如輸入5,因為5 的二進位制表示為101,所以輸出為2.解題思路 普通方法是將5轉換成...

理解java位操作符

最近的工作需要大量的採用位操作符的 其實專案本身沒有這樣的需求,不過現在我的職責是維護同事的 而這位同事的偏好是採用位操作,沒辦法學習了。無符號右移位操作符 在將bit串右移位時,從bit串的最左邊填充0,這和帶符號右移位操作符 不同。在將bit串右移位時,從bit串的最左邊填充原來最左邊的位。也就...

Java移位操作符以及按位操作符

按位操作符 針對兩個整數引數中的對應位執行布林代數運算,並生成乙個結果。按位與 如果兩個輸入位都是1則生成乙個輸出位1,否則生成乙個輸出位0。按位或 如果兩個輸入位只要有一位是1則生成乙個輸出位1.否則生成乙個輸出位為0。按位異或 如果兩個輸入位只有其中一位是1那麼生成輸出位1,否則生成乙個輸出位為...