前言
在計算機中,帶符號數默認採用補碼錶示,因爲利用補碼進行減法比較方便。
編碼概論
計算機系統內部,所有的信息都是二進制編碼的,常用大R表示進制,比如R=2代表二進制。
定點與浮點的表示
在日常生活中,有整數與非整數實數之分,區別在於整數的小數點固定在最右邊,而非整數實數的小數點位置不固定。在計算機二進制中,把小數點固定的數稱爲定點數,把小數點位置可浮動的稱爲浮點數。
定點表示
定點小數: 小數點總是固定在數的最左邊;
定點整數: 小數點總是固定在數的最右邊。
浮點表示
根據IEE754標準,任何二進制數都可以表示爲如下
其中s表示的是數字V的符號;M是一個二進制定點小數,成爲數字V的尾數;E是二進制定點整數,成爲數V的階碼或者指數;2是基數。
定點數的編碼表示
在日常生活中用±符號表示數字的正負,在計算機中,我們只有0和1,因此我們需將符號數字化,一般規定0爲正號,1爲負號,任何一個浮點數都可以表示爲一個定點小數和一個定點整數,因此只需要考慮定點數的編碼表示即可。主要有四種定點數編碼表示法:
原碼錶示法
原碼錶示法中,正數與負數盡在符號位不同,數值部分相同。例如:
【+0】 = 0 0000…
【-0】 = 1 0000…
優點: 表示簡單,轉換簡單,利於實現乘除運算
缺點: 0的表示不唯一,加減法則複雜
因此現代計算機中一般不用原碼錶示整數,只用定點原碼小數來表示浮點數的尾數部分。
補碼錶示法
正數的補碼是其本身
負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)
詳見:cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html
優點: 實現加減法的統一
反碼錶示法
正數的反碼是其本身
負數的反碼是在其原碼的基礎上, 符號位不變, 其餘各位取反,
缺點: 0的表示不唯一,表示範圍比補碼上一個最小負數,運算時候必須考慮循環進位
移碼錶示法
詳見:cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html