1. 程式人生 > 實用技巧 >機組第三章預習

機組第三章預習

一.高階語言和機器指令中的運算

1,按位運算:符號|按位OR運算;符號&按位AND運算;符號~表示按位NOT運算;符號^按位XOR運算。
實現掩碼操作:通過與給定的一個位模式進行按位與,可以提取所需要的位,對這些位進行“置1” “清0”等。
2,符號||按位OR運算;符號&&表示AND運算;符號!表示NOT運算。
3,移位運算輯移位和算術移位。
邏輯移位:不考慮符號位,把高(低)位移出,低(高)補0.
原碼的移位:原碼算術移位:左移丟1,運算會出錯,右移丟1,會影響精度
補碼的移位:正數中,原碼,補碼,反碼左右移都補0,負數中,原碼左右移補0,補碼左移補0、右移補1,反碼左右移補1。
4,位擴充套件和位截斷運算
兩種位擴充套件方式:0擴充套件和符號擴充套件。0擴充套件用於無符號數,符號擴充套件用於補碼錶示的帶符號整數

二.基本運算部件

1,序列進位加法器

  • 序列進方式:n位加法器,X與Y逐位相加,位間進位序列傳送。
  • 只有一個全加器,資料逐位序列送入加法器中進行運算。進位觸發器用來寄存進位訊號,以便參與下一次運算。
  • 行進位加法器速度慢的主要原因是進位按序列方式傳遞,高位進位依賴低位進位。

2,並行進位加法器

用n位全加器實現兩個n位運算元各位同時相加,這種加法器稱為並行加法器。並行加法器中全加器的個數與運算元的位數相同。
並行加法器中全加器的位數與運算元的位數相同,可同時對運算元的各位相加。
計算機內部大多采用兩級或多級先行進位加法器。

3,帶標誌加法器

三.定點數運算

1,補碼加減法

  • 運算表示式
  • 判斷是否溢位

2,原碼加減運算

比較兩個運算元的符號,對加法實行“同號求和,異號求差”,對減法實行“異號求和,同號求差
求和時,數值位相加,若最高位產生進位則結果溢位
求差時,被加數數值位加上加數數值位的補碼

  

3,移碼加減運算

  • 移碼的和、差等於和、差的補碼。

4,原碼乘法運算

  • 原碼一位乘法
    (1)確定乘積的符號位。由兩個乘數的符號異或得到。
    (2)計算乘積的數值位,乘積的數值部分分為兩個乘數的數值部分之積。
  • 原碼二位乘法
    原碼兩位乘是用兩位來決定新的部分積的形成,形成4種狀態

5,補碼乘法運算

  • 補碼一位乘法
    (1)將符號位和數值位合在一起參與運算,直接得出用補碼錶示的乘積,且正數和負數同等對待稱為布斯乘法
    (2)符號位參與運算,運算的數均以補碼錶示,被乘數 x 取雙符號位,乘數 y 取單符號位
    (3)運算規則
  • 補碼二位乘法

6,原碼除法運算

  • 先進行判斷:除數是否為0,商是否為0,是否溢位或為不確定的值NaN
  • 手算除法基本要點
  • 與乘法運算一樣,要將符號位和數值位分開來處理。商的符號為相除兩數符號的異或值,商的數值為兩數絕對值之商。
  • 單精度除法,其商的位數一定不會超過n位,因此不會發生溢位;雙精度除法,商的位數可能多於n位,因此,可能發生溢位
  • 恢復餘數除法
  • 不恢復餘數除法
    (1)“正、1、減、負、0、加”:若中間餘數為正數,則上商為1,下次做減法;若中間餘數為負數,則上商為0,下次做加法

7,補碼除法運算補碼恢復餘數除法

補碼恢復餘數除法
採用“夠減則上商為1,不夠減則上商為0”的上商方式,因此,最後若商為負值,則需要“各位取反,末位加1”來得到真正的商
補碼不恢復餘數除法 被除數與除數同號,被除數減去除數;被除數與除數異號,被除數加上除數。餘數與除數同號,商上1,餘數左移一位減去除數;
餘數與除數異號,商上0,餘數左移一位加上除數。(注意:餘數左移加上或減去除數後就得到了新餘數。直到商的位數滿足要求為止。

  

四.浮點數運算

1,浮點數加減運算

  • 對階、尾數運算、規格化、舍入處理、溢位判斷

2,浮點數乘除運算

先進行判0處理,規格化操作和溢位判斷

(1)乘法運算:尾數相乘,指數相加;尾數規格化;尾數舍入處理;溢位判斷浮點數除法運算

(2)除法運算:尾數相除,階相減;尾數規格化;尾數舍入處理;溢位判斷