二進制
- Java整數常量默認是int類型,當用二進制定義整數時,其第32位是符號位;當是long類型時,二進制默認占64位,第64 位是符號位
- 二進制的整數有如下三種形式:
- 原碼:直接將一個數值換成二進制數。最高位是符號位
- 負數的反碼:是對原碼按位取反,只是最高位(符號位)確定為1
- 負數的補碼:其反碼加1
- 計算機以二進制補碼的形式保存所有的整數。
- 正數的原碼、反碼、補碼都相同
- 負數的補碼是其反碼+1
為什么要使用原碼、反碼、補碼表示形式呢?計算機辨別“符號位”顯然會讓計算機的基礎電路設計變得十分復雜! 於是人們想出了將符號位也參與運算的方法. 我們知道, 根據運算法則減去一個正數等於加上一個負數, 即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法,這樣計算機運算的設計就更簡單了。