1. 程式人生 > 實用技巧 >運算方法和運算部件

運算方法和運算部件

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

1.C程式中涉及的運算

涉及的運算有按位運算邏輯運算移位運算位擴充套件和位截斷運算

  • 移位運算
    負數反碼,移位後符號位不變,左移時,最高位丟失0,則結果出錯;右移時,最低位丟失0,影響精度。
    負數補碼,移位後符號位不變,左移時,最高位丟失0,則結果出錯;右移時,最低位丟失1,影響精度。
  • 位擴充套件
    進行位擴充套件時,擴充套件後的數值應保持不變。
    擴充套件方式有:0擴充套件和符號擴充套件。0擴充套件用於無符號數,只要在短的無符號數前面新增足夠的0即可。符號擴充套件用於補碼錶示的帶符號整數,通過在短的帶符號整數前新增足夠多的符號位來擴充套件。

2.MIPS指令中涉及的運算

MIPS指令系統涉及的運算有按位邏輯運算、邏輯移位、算術移位、帶符號整數的加減乘除、無符號整數加減乘除、帶符號整數的符號擴充套件、無符號數的0擴充套件
、單精度浮點數加減乘除、雙精度浮點數加減乘除等。

2.基本運算部件

1,序列進位加法器

  • 序列進方式:n位加法器,X與Y逐位相加,位間進位序列傳送。
  • 只有一個全加器,資料逐位序列送入加法器中進行運算。進位觸發器用來寄存進位訊號,以便參與下一次運算。
  • 行進位加法器速度慢的主要原因是進位按序列方式傳遞,高位進位依賴低位進位。
    2,並行進位加法器
    用n位全加器實現兩個n位運算元各位同時相加,這種加法器稱為並行加法器。並行加法器中全加器的個數與運算元的位數相同。並行加法器中全加器的位數與運算元的位數相同,可同時對運算元的各位相加。計算機內部大多采用兩級或多級先行進位加法器
    3,帶標誌加法器

3.定點數運算

1,補碼加減法

  • 運算表示式
  • 判斷是否溢位
    2,原碼加減運算
    比較兩個運算元的符號,對加法實行“同號求和,異號求差”,對減法實行“異號求和,同號求差求和時,數值位相加,若最高位產生進位則結果溢位求差時,被加數數值位加上加數數值位的補碼
    3,移碼加減運算
    移碼的和、差等於和、差的補碼。
    4,原碼乘法運算
    原碼一位乘法
    (1)確定乘積的符號位。由兩個乘數的符號異或得到。
    (2)計算乘積的數值位,乘積的數值部分分為兩個乘數的數值部分之積。
    原碼二位乘法
    原碼兩位乘是用兩位來決定新的部分積的形成,形成4種狀態