1. 程式人生 > >java的移位和異或運算

java的移位和異或運算

clas 成了 就是 第一個 一個 log mar 進制 轉換

Java移位運算種類

基礎:我們知道在Java中int類型占32位,可以表示一個正數,也可以表示一個負數。正數換算成二進制後的最高位為0,負數的二進制最高為為1
例子:
-5換算成二進制後為:1111 1111 1111 1111 1111 1111 1111 1011
負數的二進制如何換算過來的?
負數轉換為二進制,就是將其相反數(正數)的補碼的每一位變反(1變0,0變1)最後將變完了的數值加1,就完成了負數的補碼運算。這樣就變成了二進制。
5換算成二進制後為:0000 0000 0000 0000 0000 0000 0000 0000 0101

  1. 右移 >>
    正數右移,高位補0
    例子:5>>3 -->0000 0000 0000 0000 0000 0000 0000 0000 0000 -->0
    負數右移,高位補1
    例子:-5>>3 -->1111 1111 1111 1111 1111 1111 1111 1111 -->-1
  2. 無符號右移 >>>
    無符號右移,高位補0
    例子:-5>>>3 -->0001 1111 1111 1111 1111 1111 1111 1111 -->536870911
  3. 正負數左移<<
    正負數左移都是低位補0
  4. 位異或
    位異或:第一個操作數的的第n位於第二個操作數的第n位 相反,那麽結果的第n為也為1,否則為0

java的移位和異或運算