計算機組成原理--數據格式與機器碼

數據格式

計算機中使用的數據可分紅兩大類:編碼

  • 符號數據:非數字符號的表示(ASCII、漢字、圖形等)
  • 數值數據:數字數據的表示方式(定點、浮點)

計算機數字和字符的表示方法應有利於數據的存儲、加工(處理)、傳送;3d

編碼:用少許、簡單的基本符號,選擇合適的規則表示儘可能多的信息,同時利於信息處理(速度、方便)code

進制轉換

這個通常都不是問題,但二進制小數轉十進制我忘了,因此在這複習一下blog

例如將0.11101轉爲十進制那麼應該這樣作:0*2^(0)+ 1*2^(-1)+1*2^(-2)+1*2^(-3)+ 0*2^(-4)+1*2^(-5)排序

計算機在數據、文字的表示方式時,應該考慮一下幾個因素:ci

  • 表示的數據類型(符號、小數點、數值)
  • 數值的範圍
  • 數值精度
  • 存儲、處理、傳送的硬件代價
  • 是否有利於軟件的移植等...

定點表示

全部數據的小數點位置固定不變,理論上位置能夠任意,但實際上將數據表示有兩種方法(小數點位置固定-定點表示法/定點格式):純小數和純整數,而後又分帶符號不帶符號軟件

定點純小數
硬件

定點純整數
數據類型

定點表示法的特色:二進制

  • 定點數表示數的範圍受字長限制,表示數的範圍有限;
  • 定點表示的精度有限
  • 機器中,經常使用定點純整數表示;

由於要表示實數(包括小數和整數),因此引入浮點數

浮點表示:小數點位置隨階碼不一樣而浮動

機器中表示

IEEE754標準(規定了浮點數的表示格式,運算規則等)規則規定了單精度(32)和雙精度(64)的基本格式,規則中,尾數用原碼,指數用移碼(便於對階和比較)

IEEE754標準

  • 基數R=2,基數固定,採用隱含方式來表示它。
  • 32位的浮點數:
    • S數的符號位,1位,在最高位,「0」表示正數,「1」表示負數。
    • M是尾數, 23位,在低位部分,採用純小數表示
    • E是階碼,8位,採用移碼錶示。移碼比較大小方便。
    • 規格化: 若不對浮點數的表示做出明確規定,同一個浮點數的表示就不是唯一的。
      • 尾數域最左位(最高有效位)老是1故這一位常常不予存儲,而認爲隱藏在小數點的左邊
      • 採用這種方式時,將浮點數的指數真值e變成階碼E時,應將指數e加上一個固定的偏移值127(01111111),即E=e+127

E: 階碼位數,決定數據的範圍,M: 尾數位數,決定數的精度

  • 真值x爲零表示:當階碼E爲全0且尾數M也爲全0時的值,結合符號位S爲0或1,有正零和負零之分
  • 真值x爲無窮大表示:當階碼E爲全1且尾數M爲全0時,結合符號位S爲0或1,也有+∞和-∞之分。
  • 這樣在32位浮點數表示中,要除去E用全0和全1(255)表示零和無窮大的特殊狀況,指數的偏移值不選128(10000000),而選127(01111111)。對於規格化浮點數,E的範圍變爲1到254,真正的指數值e則爲-126到+127。所以32位浮點數表示的絕對值的範圍是10^-38~10^38(以10的冪表示)。
  • 浮點數所表示的範圍遠比定點數大。一臺計算機中究竟採用定點表示仍是浮點表示,要根據計算機的使用條件來肯定。通常在高檔微機以上的計算機中同時採用定點、浮點表示,由使用者進行選擇。而單片機中多采用定點表示

指數採用偏移值,其中單精度偏移值爲127,雙精度爲1023,將浮點數的階碼值變成非負整數,便於浮點數的比較和排序

機器數的特色

原碼:表示簡單,運算複雜:符號位不參加運算,要設置加法、減法器,0的表示不惟一,不能直接斷定是執行加法仍是減法運算,分同號和異號

反碼:表示相對原碼複雜,運算相對原碼簡單:符號位參加運算, 只須要設置加法器,但符號位的進位位須要加到最低位,0的表示不惟一

補碼:表示相對原碼複雜,運算簡單:只需設置加法器,0的表示惟一

移碼(增碼):

BCD碼

表示一位十進制數的二進制碼的每一位有肯定的權。通常用8421碼,其4個二進制碼的權從高到低分別爲八、四、2和1。用0000,0001,…,1001分別表示0,1,…,9,每一個數位內部知足二進制規則,而數位之間知足十進制規則,故稱這種編碼爲「以二進制編碼的十進制(binary coded decimal,簡稱BCD)碼」

在計算機內部實現BCD碼算術運算,要對運算結果進行修正,對加法運算的修正規則是:
若是兩個一位BCD碼相加之和小於或等於(1001),即(9),不須要修正;如相加之和大於或等於(10),要進行加6修正,並向高位進位,進位能夠在首次相加(例3.10③)或修正時產生

碼值轉換

補碼是在「模」和「同餘」的概念下導出的。

「模」是指一個計量系統的計量範圍,即產生「溢出」的量。

5-2=5+10     (MOD  12)
   5+(-2)=5+10  (MOD 12)
   -2=10         (MOD 12)

能夠說:在模爲12的狀況下,-2的補碼 就是10。 一個負數用其補碼代替,一樣能夠獲得正確的運算結果。

一、一個負數可用它的正補數來代替,而這個正數能夠用模加上負數自己求得。

二、一個正數和一個負數互爲補數時,它們絕對值之和即爲模數。

進一步結論:

  • 在計算機中,機器能表示的數據位數是必定的,其運算都是有模運算。若是是n位整數(不含符號位),其模爲2n+1。若是是n位小數,其模爲2。
  • 若運算結果超出了計算機所能表示的數值範圍,則只保留它的小於模的低n位的數值,超過n位的高位部分就自動捨棄了。

補碼性質:高位代表正負,正數補碼,尾數與原碼相同,範圍-2^n~2^n-1(定點整數)

由原碼求補碼的簡便原則:除符號位之外,其他各位按位取反,從最低位開始遇到的第一個1及右邊的各位保持不變

由[X]補求[-X]補:連符號位一塊兒各位求反,末位加1。

由[X]補求[X/2]補:將[X]補的符號位和數值位一塊兒向右移動一次.符號位移走後保持原來的值不變.這稱爲「算術移位」,[X/4]補和[X/8]補同理

n+1位補碼所能表示的數

反碼錶示法

定義:正數的表示與原、補碼相同,負數的反碼符號位爲1,數值位是將原碼的數值按位取反,就獲得該數的反碼錶示,電路容易實現,觸發器的輸出有正負之分

[x ]補=[x ]反+2^-n,反碼錶示有正0和負0之分

移碼

特色:移碼和補碼尾數相同,符號位相反,範圍:-2^n~2^n-1

性質: 若[X1]移>[X2]移,則有 X1>X2.

原碼、補碼、反碼和移碼的區別,可分三個區域:




相關文章
相關標籤/搜索