Java程式設計 位運算子

2021-06-19 06:26:24 字數 767 閱讀 1946

&:按位與。

|:按位或。

~:按位非。

^:按位異或。

<

>>:右位移運算子。

<<

這四個運算子比較常見,也比較簡單總結如下表所示:

第乙個運算子

第二個運算子

按位與

按位或

按位異或0

0000

0101

1100

1111

110

異或:又稱半加法運算,例如1異或1可以當成二進位制下的1+1=10然後取最後一位,正好是異或的結果,0+0、1+1、0+1同理。

前四種位運算子是比較簡單的,只需要按位進行邏輯運算即可例如5&9(結果為1)的執行過程如下:

再比如~-5(結果為4)的執行過程如下:

其他運算(|、~、^)同理。

後面的移位運算相對前面的有些複雜,但是細細研究還是很好理解的。

-5<<2(結果為-20)的執行過程如下:

-5>>2執行過程如下:

-5>>>2的運算過程

通過上面的過程可以看出,只要被移位的二進位製碼沒有發生有效位的數字丟失(對於正數而言,通常指被移出的位全部都是0),不難發現左移n位就相當於乘以2的n次方,右移則是處以2的n次方。還有一點就是進行移位運算不會改變運算元本身,它只是得到了乙個新的運算結果,而原來的運算元本身是不會發生改變的。

java位運算子

按位與運算子 參加運算的兩個資料,按二進位制位進行 與 運算。運算規則 0 0 0 0 1 0 1 0 0 1 1 1 即 兩位同時為 1 結果才為 1 否則為0 例如 3 5 即0000 0011 0000 0101 0000 0001 因此,3 5的值得1。另,負數按補碼形式參加按位與運算。與運...

Java位運算子

今天在學習 hashmap 的時候,發現這麼一段 static final int tablesizefor int cap 方法的作用就是,輸入乙個數,如果該數為2的冪次方,那麼將原數返回回去,如果不是,那麼會返回另乙個數,也會是2的冪次方。看完我就覺得我該好好看看位運算子了。位運算子主要針對二進...

java 位運算子

移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就...