【電腦組成原理】第6章 電腦的運算方法

教材基於《電腦組成原理 第3版》 ——唐朔飛

無符號數和有符號數

無符號數

無符號數:整個機器字長的全部二進位位均為數值位,沒有符號位,相當於數的絕對值。

暫存器的位數用來反映無符號數的範圍。

有符號數

原碼

🌅 原碼的定義:

  • 整數

  • 小數

🌰 舉例:


反碼

🌅 反碼的定義:

  • 整數

  • 小數

補碼

🌅 補碼的定義

  • 整數

  • 小數

🔔 當真值為 時,原碼 可用 補碼除符號位外 每位取反,末位加 1 求得

⚠️ 求補碼的另一種方法:從原碼的最右端開始向左數,數到第一個 1 停止,該位置左邊的所以位數(除了符號位)取反。

1️⃣ 一個負數加上 「模」 即得該負數的補數

2️⃣ 一個正數和一個負數互為補數時,它們絕對值之和即為模數

🌰 舉例:

移碼

🌅 移碼的定義

🔔 最小真值的移碼為全 0

練習

三種機器數的小結

1️⃣ 最高位為符號位,書寫上用「,」(整數)或「.」(小數)將數值部分和符號位隔開

2️⃣ 對於正數,原碼 = 補碼 = 反碼

3️⃣ 對於負數 ,符號位為 1,其數值部分

  • 原碼除符號位外每位取反末位加 1 -> 補碼。
  • 原碼除符號位外每位取反 -> 反碼

  • 原碼和反碼的真值 0 有兩種表示
  • 補碼和移碼的真值 0 只有一種表示
  • 補碼和移碼可以多表示一個負數

數的定點表示和浮點表示

定點表示

浮點表示

浮點數的表示形式

浮點數的表示範圍

IEEE 754 標準

定點運算

移位運算

🌈 算術移位規則

🌈 算術移位和邏輯移位的區別

加減法運算

補碼加減運算公式

  • 加法

  • 減法

  • 連同符號位一起相加,符號位產生的進位自然丟掉

  • 溢出判斷

    • 一位符號位判溢出:參加操作的 兩個數(減法時即為被減數和「求補」以後的減數)符號相同,其結果的符號與原操作數的符號不同,即為溢出

    • 兩位符號位判溢出:結果的雙符號位 相同:未溢出;結果的雙符號位 不同:溢出。最高符號位 代表其 真正的符號

乘法運算

原碼乘法

  • 原碼一位乘運算規則


補碼乘法

  • 補碼一位乘運算規則

  • Booth 演算法(被乘數、乘數符號任意)

除法運算

原碼除法

  • 恢復餘數法

  • 不恢復餘數法(加減交替法)

補碼除法

  • 餘數補碼與除數補碼同號:上商「1」;不同號:上商「0」
  • 末位商恆置「1」


補碼除和原碼除(加減交替法)比較