我記得第一次聽說位運算子好像是從大二的微機原理,那個時候學並不好,後來程式設計好像也沒有用到過,但是最近在複習一些東西的時候,發現這才是最終要的基礎,比起算術運算子高階大氣上檔次多了。
下面就對今天覆習的位運算子做一下筆記
&:按位與。
|:按位或。
~:按位非。
^:按位異或。
<
>>:右位移運算子。
>>>:無符號右移運算子。
關於前面幾個,請看下面的真值表
主要記錄一下後面三個吧
1.左位移
向左移一位,空出的就是低位,高位溢位,空位補0,相當於乘以2.例如:
二進位製碼依次左移1位。0000 0001→0000 0010→0000 0100→0000 1000.對應的分別是1,2,4,8
2.右位移
這個時候要分有符號還是無符號
(1)如果是無符號
空出高位全補0 低位溢位 . 相當於每次除以2,例如
二進位製碼10100110無符號右移,則右邊兩位溢位,左邊兩位補0
1010 0110→0010 1001
(2)如果有符號
又分兩種情況
1.邏輯右移
低位溢位,高位補0(和無符號右移是一樣的)
2.算術右移
低位溢位,高位補符號位。
例如 1011 1010右移三位10111010>>3
結果變成1111 0111
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的餘數,也就...