有號數常見的三種方式比較
有號數表示法主要有三種:符號大小值、一補數、二補數
而這三種有一個共通點:最左邊的bit是判斷正負數,只要是正數最左邊就是0,負數就是1
# | 符號大小值 | 一補數 | 二補數 |
---|---|---|---|
正數表示 | 2進位 | 2進位 | 2進位 |
負數表示 | 最左邊的bit換成1 | 所有bit相反 | 右邊遇到第一個1以左(不包含1)都相反,以右不動 |
範圍 | -2^(n-1)+1 到 2^(n-1)-1 | -2^(n-1)+1 到 2^(n-1)-1 | -2^(n-1) 到 2^(n-1)-1 |
聽起來很難理解直接上例子,以下描述3bit表示3和-3
# | 符號大小值 | 一補數 | 二補數 |
---|---|---|---|
正數表示 | 011 | 011 | 011 |
負數表示 | 111 | 100 | 101 |
三種表現方式例子
用5bit算出以上三種方式的最大最小值及0的表示
以上面的公式可以得知範圍
# | 符號大小值 | 一補數 | 二補數 |
---|---|---|---|
範圍 | -15 到 15 | -16 到 15 | -16 到 15 |
這部分就沒有什麼疑慮都一樣
# | 符號大小值 | 一補數 | 二補數 |
---|---|---|---|
最大值表示 | 01111 | 01111 | 01111 |
值 | 15 | 15 | 15 |
依照剛剛的說法
# | 符號大小值 | 一補數 | 二補數 |
---|---|---|---|
最小值表示 | 11111 | 10000 | 10000 |
值 | -15 | -15 | -16 |
# | 符號大小值 | 一補數 | 二補數 |
---|---|---|---|
正0 | 00000 | 00000 | 00000 |
負0 | 10000 | 11111 | 00000 |
分類會依照第一篇介紹的分類架構來進行
由於是將學習過程記錄下來,如果有任何錯誤歡迎糾正
以下參考連結在學習過程中覺得非常有幫助:
-進制簡介
-台大線上課程