數制
數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法
- 十進制(就是我們生活中常用的數制,逢10進1)
- 二進制(計算機中表示所有數據都使用的二進制,逢2進1)
- 八進制(逢8進1)
- 十六進制(逢16進1,0-9,a-f)
二進制
- 二進制數只有兩個不同的數碼,0和1
- 逢2進位
比如二進制數1和1相加: 1 + 1 = 10B - 2進制數可以通過權相加的方法換算成10進制數
比如二進制數 1111.11轉換成十進制數
1111.11B = 1 x 23 + 1 x 22 + 1 x 2 1 + 1 x 20 + 1 x 2-1 + 1 x 2-2
=8 + 4 + 2 + 1 + 0.5 + 0.25
=15.75D
原碼、補碼、反碼
由於計算機電路只是加法器,所以進行加法運算是最簡便的,這三種編碼的出現就是爲了解決減法的問題
注意: 補碼反碼都是相對與模的概念說的,直白的來說,就是求補碼,反碼都是在一定的數據範圍內的,在下面的例子中,我們以4位2進制數來進行運算,那麼模就是10000,換算成10進制就是2^4,範圍就是-8 ~ +7
在生活中,數的正負都是用‘+’和‘-’來表示的,但是計算機中只有0和1,難以表示這種符號,所以將符號數字化,就是用0表示正,1表示負。通常,把符號數字化了的數稱作機器數。數本身,稱作真值。
機器數用三種方法表示:原碼、補碼、反碼。
模的概念
舉一個簡單的例子來說明這個概念:
- 加入現在是4點,但是時針指在5點的位置,我們要把時針撥到準確的時間就有兩種辦法:
1、將錶針逆時針撥1格,從五點撥到四點
2、將錶針順時針撥11格,也能從五點撥到四點
那麼就得出了一個結論,如果忽略錶針多轉了一圈,那麼 +11 和 -4 的效果是一樣的 - 用上面的例子說,這個錶針的模就是12,因爲這個模,我們 +11 和 -4的效果是一樣的,由於計算機電路只是加法器,那麼依照這個原理,就能把減法變成加法,但是這樣就要規定計算的範圍,超出範圍就不行了,就好比錶針只能在十二個格子上來回撥動一樣,不可能在十三個格子上撥。
原碼
符號0表示正數,1表示負數,其餘位表示數本身,稱作原碼錶示法
舉個例子:
十進制數 | 二進制數 | 原碼 |
---|---|---|
7 | 111 | 0111 |
-7 | -111 | 1111 |
表中原碼列黃色的數字就是符號位,不參與運算,只表示數的正負
反碼
反碼錶示法規定:正數的反碼與原碼相同,負數的反碼是對正數逐位取反,符號位保持不變
數字 | 原碼 | 反碼 |
---|---|---|
7 | 0111 | 0111 |
-7 | 1111 | 1000 |
補碼
將負數表示爲正數,將減法變爲加法,把加減運算變成單純的加法運算
補碼錶示法規定:正數的補碼與原碼相同,負數的補碼是在其反碼末位加一
數字 | 原碼 | 反碼 | 補碼 |
---|---|---|---|
7 | 0111 | 0111 | 0111 |
-7 | 1111 | 1000 | 1001 |
總結
總而言之,原碼,反碼,補碼就是爲了在計算機中實現加法和減法而產生的,就是想辦法將減法運算轉換爲加法運算。