[計算機組成原理] 計算機中數的表示-原碼、補碼、反碼、移碼

 

真值和機器數

  • 真值就是我們實際要表示的數字。
  • 機器數就是這個數在計算機怎麼存的。

有符號數和無符號數

  • 有符號數:一個字節佔8位,有符號就是有正有負,那麼這8位就得有一位表示正號和負號,剩下七位數才表示數值。
  • 無符號數:一個字節佔8位,既然是無符號數,就是肯定是正的,這8位數都是數值位,對應C語言中的unsigned int。

定點數

  • 定點數就是小數點的位置是固定的,假設一個數用一個字節存,也就是8位存,如果是整數,那麼小數點的位置在最後邊,如果是小數,那麼小數點的位置在最高數值位前邊,也就是符號位後邊(不考慮無符號數)。

定點數的原碼錶示法

定點整數

定點小數

舉例

原碼小結

  • 假設有符號數用一個字節表示,那麼定點整數的最小值爲11111111B,定點整數最大值爲01111111B,共可以表示255個數,爲啥不是256,因爲10000000B和00000000B表示的都是0,雖然有256種二進制組合,但是隻表示255個數。
  • 假設有符號數用一個字節表示,那麼定點小數的最小值爲11111111B,定點小數最大值爲01111111B,共可以表示255個數,爲啥不是256,因爲10000000B和00000000B表示的都是0,雖然有256種二進制組合,但是隻表示255個數。

補碼錶示法

反碼錶示法

移碼錶示法

總結

  • 把十進制轉二進制,整數部分:除二取餘,倒着寫;小數部分:乘二取整,正着寫。
  • BCD碼,用8421碼來表示一個十進制數,比如93,9對應1001,3對應0011,所以93的BCD碼就是10010011
  • x和y都是一位BCD碼,進行加法運算時,如果和超過了9,則需要加6修正。
  • n位無符號數,那麼n位都是數值位。
  • 正數的原碼、反碼、補碼是一樣的。
  • x的原碼和-x的原碼關係:數值位相同,符號位相反
  • 原碼移位規則:符號位不變,空位補0
  • 補碼的定義:模加真值。其中對於定點小數(n+1位)模是2,定點整數(n+1位)模是pow(2,n+1)
  • 補碼比原碼(反碼)多表示一個數,都是數軸左邊的那個數,對於小數補碼可以表示-1,對於整數補碼可以表示-pow(2,n),都是用-0的原碼錶示的,即10000000
  • x的補碼和-x的補碼關係:包含符號位,取反,再加1
  • 補碼移位規則:左移符號位不變,空位補0;右移符號位不變,空位補符號位
  • 補碼位擴展:小數低位用0擴展,整數高位用符號位擴展
  • 根據原碼求補碼:整數的原碼就是補碼;對於負數來說,先求出負數的原碼,在從最低位起,遇到的0和第一個1不變,其他數值位取反
  • 反碼就是補碼減1;或者反碼就是原碼數值位取反,表示範圍和原碼一樣。
  • 移碼和補碼的關係:數值位相同,符號位相反。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章