浮點數加減運算的結果規格化處理

一.對運算結果進行規格化處理

規格化:最高位與符號位相反
(1)先判斷結果是不是規格化,如果不是則執行如下操作

      (2)若結果的符號位爲11或00,則進行左規,即尾數左移或小數點右移,階碼在原有基礎上減去移動位數;
      (3)若結果的符號位爲10或01,則進行右規,即尾數右移或小數點左移階碼在原有基礎上加上移動位數。

二.例題分析

例題1:

x = 2^011*(0.100101),
y = 2^-010*(-0.011110)

將階碼的符號用雙符號位表示,並進行求補操作:
[x]浮 = 11101,0.100101,
[y]浮 = 11110,-0.011110

作差比較,進行對階操作(小階對大階):
Ex-Ey = 11101+00010=11111
差爲負值,說明y的階碼是大階,故將x的尾數右移(即小數點向左移動)進行對階:
[x]浮 = 11110,0.010010(1)

故:(尾數補數的加法)
x+y =
      0 0. 0 1 0 0 1 0 (1)
  +  1 1. 1 0 0 0 1 0
      1 1. 1 1 0 1 0 0 (1)

規格化處理:1.010010(尾數左移兩位,即小數點右移兩位)
階碼的補碼: 11100

x+y= 2^-4 * 1.010010
即x+y= 2^-100*(-0.101110)

分析:本來結果爲1 1. 1 1 0 1 0 0 (1),但是11爲符號位,1爲最高位,與要求不符合,根據要求(2)需要左規,則小數點右移,則變爲11.101001,11爲符號位,1爲最高位,與要求不符合,根據要求(2)需要左規,變爲1.010010,符合要求,此時結果規格化。

例題2:
x = 2^011*(0.100101),
y = 2^-010*(-0.011110) ,
-y= 2^-010*(0.011110) ,

x-y =(尾數補碼的減法)
       0 0. 0 1 0 0 1 0 (1)
  +   0 0. 0 1 1 1 1 0
       0 0 1 1 0 0 0 0 (1)

規格化處理: 0.110000 階碼 11110

x-y=2^-2*0.110001

分析:通過要求分析,結果已經是規格化。

發佈了22 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章