1.位運算
1.1 原碼、反碼、補碼
? *規則:
? 1.二進制的最高位是符號位:0表示正數,1表示負數
? 2.正數的原碼,反碼,補碼都一樣(三碼合一)
? 3.負數的反碼 = 他的原碼符號位不變,其它位取反(0->1,1->0)
? 4.負數的補碼 = 它的反碼 + 1,負數的反碼 = 負數的補碼 - 1
? 5.0的反碼,補碼都是0
? 6.Java沒有無符號數
? 7.在計算機運算的時候,都是以補碼的方式來運算的
1.2 位運算符
? *java中有7個位運算(&、|、……、~、>>、<<和>>>)
? *按位與& : 兩位全為1,結果為1,否則為0
? *按位或| :兩位有一個為1,結果為1,否則為0
? *按位抑或^:兩位一個為0,一個為1,結果為1,否則為0
? *按位取反~ : 0->1,1->0
? 算術右移>>:低位溢出,符號位不變,并用符號位補溢出的高位*(相當于除以2)**
? 算術左移<<:符號位不變,低位補0*(相當于乘以2)**
? *>>>邏輯右移也叫無符號右移,運算規則:低位溢出,高位補0