數據在計算機中的表示

數據在計算機中的表示(原碼、補碼、反碼)

數制

數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法

  • 十進制(就是我們生活中常用的數制,逢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

總結

總而言之,原碼,反碼,補碼就是爲了在計算機中實現加法和減法而產生的,就是想辦法將減法運算轉換爲加法運算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章