java的移位和異或運算
阿新 • • 發佈:2017-11-28
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
- 右移 >>
正數右移,高位補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 - 無符號右移 >>>
無符號右移,高位補0
例子:-5>>>3 -->0001 1111 1111 1111 1111 1111 1111 1111 -->536870911 - 正負數左移<<
正負數左移都是低位補0 - 位異或
位異或:第一個操作數的的第n位於第二個操作數的第n位 相反,那麽結果的第n為也為1,否則為0
java的移位和異或運算