1. 程式人生 > >數據的表示和運算

數據的表示和運算

傳輸過程 單元 str 不為 十六進制 nbsp 連續 不變 大小

總覽:

  1. 數制與編碼
    1. 進位計數制及其相互轉換
    2. 真值和機器數
    3. BCD碼
    4. 校驗碼
  2. 定點數的表示和運算
    1. 定點數的表示

      無符號數的表示,有符號數的表示

    2. 定點數的運算

      定點數的位移運算,原碼定點數的加/減運算,補碼定點數的加/減運算,定點數的乘/除運算,溢出的概念和判別方法。

  3. 浮點數的表示和運算
    1. 浮點數的表示

      IEEE754標準

    2. 浮點數的加/減運算
  4. 算術邏輯單元(ALU)
    1. 串行加法器和並行加法器
    2. 算術邏輯單元的功能和結構

  1. 數制與編碼
    1. 進位計數制及其相互轉換
      1. 二進制、八進制、十進制、十六進制相互轉換
        1. 十進制轉二進制:整數部分除2取余,逆序書寫,商成為新的操作數;小數部分,乘2取整,順序書寫,余數成為新的操作數
        2. 二進制轉十進制:第i位的值乘2^i求和,小數點前為第0位,小數點後為第-1位
        3. 其余數制借助二進制轉換
      2. 計算機內部采用二進制編碼的好處
        1. 基本符號少,易於靜態電路實現
        2. 編碼、計數、運算等的規則簡單
        3. 邏輯命題"真"和"假"與0和1對應
    2. 真值和機器數
    3. BCD碼

    常見分為兩類有權BCD碼(8421/2421/5421等)和無權BCD碼(如余3碼、格雷碼等)

    1. 8421碼

      使用四位二進制數表示一位十進制數‘0‘ ~ ‘9‘,每位權重8421;十六進制數C表示‘+‘,D表示‘-‘;十進制位數為偶數時,第一個字節的高4位補"0"

    2. 余3碼

      在8421的基礎上,加上十進制的3

    3. 2421碼

      權重2421;若十進制數大於等於5,則最高位是1;若小於5,則最高位是0

    1. 字符與字符串
      1. ASCII

        ‘0‘ 48 ‘A‘ 65 ‘a‘ 97

      2. 漢字編碼
      3. 字符串的大小端存放
        1. 小端:從低位到高位依次存放數據
        2. 大端:從高位到低位依次存放數據
    2. 校驗碼
      1. 奇偶校驗碼
        1. 奇校驗:添加一位校驗碼後,是的整個碼字裏面1的個數是奇數;接收端收到數據後就校驗數據裏面1的個數,如果正好為奇數,則認為傳輸沒有出錯;如果檢測到偶數個1,則說明傳輸過程中,數據發生了改變,要求重發。
        2. 偶校驗:添加一位校驗碼後,是的整個碼字裏面1的個數是偶數;接收端收到數據後就校驗數據裏面1的個數,如果正好為偶數,則認為傳輸沒有出錯;如果檢測到奇數個1,則說明傳輸過程中,數據發生了改變,要求重發。
        3. 只具有檢錯功能,不具有糾錯功能;一位發生變化可以檢測出來,多位變化無法檢測
      2. 循環冗余校驗(CRC)碼(P145)
        1. 可以發現並糾正信息在存儲和傳送過程中連續出現的多位錯誤代碼。
        2. K位校驗位;k+1位生成多項式
        3. 循環校驗碼用約定的G(x)去除,如果無措,余數全為0,如果某一位出錯,則余數不為0。不同的出錯位其余數不同,出錯位的余數對應G(x)的出錯模式。
        4. 特性:
          1. 具有r檢測位的多項式能夠檢測出多有小於或等於r的突發錯誤。
          2. 長度大於r+1的錯誤逃脫的概率是1/2^r
      3. 海明碼(P100)
        1. 糾錯編碼
        2. 具有一位糾錯能力。信息位有k位,校驗位有r位,滿足2^r >= k + r + 1
        3. 海明碼求解步驟:
          1. 確定校驗碼的位數r
          2. 確定校驗碼的位置 2^(i - 1)
          3. 確定數據的位置
          4. 求校驗位的值:被校驗數據碼的海明位號等於校驗該數據碼的各校驗碼海明位號之和,且校驗碼不需要在被校驗
        4. 常用的(n, k)海明碼中,冗余位的位數是 n - k
  2. 定點數的表示和計算
    1. 定點數的表示
      1. 定點數-1的補碼是1.0000,原碼定點數中不存在-1
      2. 原碼和反碼0的表示都有兩種,補碼只有一種
      3. 移碼和補碼符號位相反;移碼真值大的表示形式就大;0~[2^(n+1) - 1]
    2. 定點數的運算
      1. 采用補碼

    -1的補碼全為1, 0的補碼全為0;最小負數的補碼永遠首位是1,其余位全是0

    1. 定點數的移位運算
      1. 邏輯移位

        邏輯左移時,高位移丟,低位補0;邏輯右移時,低位移丟,高位填0

      2. 算術移位
        1. 當機器數為正時
          1. 原碼:補碼:反碼:左移右移都補0
        2. 當機器數為負時:
          1. 原碼:空位填0,符號位不變
          2. 反碼:空位填1,符號位不變
          3. 補碼:左移填0,右移填1
        3. 對精度的影響(天P35)
    2. 原碼定點數的加/減運算
    3. 補碼定點數的加/減運算
    4. 溢出的概念和判別方法(天P37)
    5. 定點數的乘法運算
      1. 原碼一位乘
      2. 原碼兩位乘
      3. 補碼一位乘
      4. 補碼兩位乘
    6. 定點數的除法運算
      1. 原碼恢復余數法
      2. 原碼不恢復余數法
      3. 補碼不恢復余數法
  3. 浮點數的表示和運算
    1. 浮點數的表示

      階碼 尾數

      IEEE754標準:尾數用原碼表示,階碼用移碼表示

    2. 浮點數的加/減運算
      1. 步驟:對階;尾數求和;規格化;舍入
  4. 算術邏輯單元
    1. 串行加法器和並行加法器
      1. 全加器和半加器
      2. 串行加法器
      3. 並行加法器
      1. 串行進位鏈
      2. 並行進位鏈
        1. 進位函數
        2. 單重分組跳躍進位鏈
        3. 雙重分組跳躍進位鏈
    2. 算術邏輯單元的功能和結構
      1. 組合邏輯電路
      2. 時序邏輯電路
      3. ALU
  5. 復習感想:

    二三章東西真的是太多了,總結起來也是真的多,不總結一些又遺忘的太快,況且二三章還那麽重要。看完二三章,後面的就相對較少一點了,感覺計算機組成比數據結構麻煩多了。前兩天發燒,拖更了一天,不過,反正也沒人看。

數據的表示和運算