機器數及特點

機器數及特點

<1> 爲什麼要研究機器內的數據表示

  • 目的:組織數據,方便計算機硬件直接使用
  • 要考慮的因素
    • 支持的數據類型
    • 能表示的數據範圍
    • 能表示的數據精度
    • 存儲和處理的代價
    • 是否有利於軟件的移植

<2> 機器內的數據表示

  • 真值:符號用 “+”、 “-” 表示的數據表示方法
  • 機器數:符號數值化的數據表示方法,用0、1表示符號
  • 三種常見的機器數:設定點數的形式爲X0X1X2X3 … Xn

例 求下列各數的原碼、補碼和反碼

  1. X = +1011
    [X] = [X] = [X] = 01011
  2. X = -1011
    [X] = 11011    [X] = 10100    [X] = 10101
  3. 0的表示
    [+0] = 00000    [-0] = 10000
    [+0] = 000000    [-0] = 11111
    [+0] = 00000 = [-0]

<3> 常見機器數的特點

1. 原碼

  • 表示簡單:[X] = 2n - X
  • 運算複雜:符號位不參加運算,要設置加法、減法器

[X] + [Y]
(不能直接判定是執行加法還是減法運算,分同號和異號)

  • 0的表示不唯一

2. 反碼

  • 表示相對原碼複雜;[X] = 2n+1 + X - 1
  • 運算相對原碼簡單,符號位參加運算,只需要設置加法器,但符號位的進位需要加到最低位
  • 0的表示不唯一

反碼運算舉例

3. 補碼

  • 表示相對原碼複雜:[X] = 2n+1 + X
  • 運算簡單:只需設置加法器
  • 0表示唯一

補碼中模的概念:符號位進位後後所在位的權值

4. 移碼(增碼)

  • 移碼錶示浮點數的階碼,IEEE754中階碼用移碼錶示
  • 設定點整數X的移碼形式爲 X0X1X2X3 … Xn,則移碼的定義是:
    [X] = 2n + X     -2n < X < 2n    (X爲真值,n爲X的整數位位數)
  • 具體實現:數值位與X的補碼相同,符號位與補碼相反

例 X = +10101     [X] = 010101    [X] = 110101
     X = -10101     [X] = 101011    [X] = 001011

01011    [X] = 001011

注: 在機器數上,我們一定不能夠說"0" 是表示整數的符號,“1” 是表示複數的符號

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