Java 位運算
阿新 • • 發佈:2017-12-27
必須 計算 絕對值 nbsp pan 數字 異或 ont 符號
1.源碼 2.反碼 3.補碼
註意的規則:
1.正數的三個碼都是一致的,不需要轉換
2.負數必須轉換成補碼才能運算
3.計算機真正參與運算的是補碼
4.在java中所有的數字都是由符號的, 符號位0正數,1負數
5.符號位就是最高位,也是最左邊的一位
6.負數的反碼=符號位不變+其他位取反
7.負數的補碼=反碼+1
算數右移和算數左移
算數右移:
>>:位移的方向,右
1/2/3……:位移的位數
1.正數符號位不變
2.低位溢出刪除
3.高位補0
4.負數先轉換成補碼再進行算數右移動運算
算數左移:
1.符號位不變
2.高位溢出刪除
3.低位補0
邏輯右移,沒有邏輯左移:
1.不管符號位
2.低位溢出刪除
3.高位補0
位運算:
& | ^ ~
1.&按位與:兩位都是1,結果才是1
2.|按位或:兩位有一位是1,結果就是1
3.^按位異或:兩位必須一個為0,一個為1,結果才是1
4.~按位取反:只能是一個表達式使用,
(01.源碼全部取反02.轉化成反碼03.轉換成補碼)
正數的按位取反,等於自身的負數-1,負數的按位取反,等於自身的絕對值-1
Java 位運算