1. 程式人生 > >結果規格化—規格化浮點數的加減運算

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

一.對運算結果進行規格化處理
(1)先判斷結果是不是規格化,如不是執行下面幾步

(2)補碼尾數的最高位和尾數符號相反,如

(3)結果溢位(01,10)則需要右規,否則左規

二.例題分析

例題1:

x = 2^11*0.100101, y = 2^-10*(-0.011110) 

[x]浮 = 11101,0.100101,[y]浮 = 11110,-0.011110

Ex-Ey = 11101+00010=11111
[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= 1.010010*2^-4 = 2^-4*-0.101110

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

例題2:

x+y= 1.010010*2^-4 = 2^-4*-0.101110

x-y    0 0. 0 10 01 0 (1)

+       0 0. 0 11 11 0

         0 0 1 1 00 00 (1)

規格化處理: 0.110000 階碼 11110

 x-y=2^-2*0.110001

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

例題3:

x = 2^10*0.1101, y = 2^11*(-0.1111) 

[x]浮 = 0 0010 11010,[y]浮 = 1 0011 00010

對階:[x]浮 = 0 0011 01101

x-y = x+[-y]

x+[-y] 0 0. 0 1 1 0 1
+         0 0. 1 1 1 1 0
                0 1. 0 1 0 1 1
規格化處理: 00.101011 階碼 0100

x-y= 2^100*0.10101

分析:由符號位是01根據要求(2),需要右規,則變為00.10101,滿足規格化條件,結果規格化。

若是哪裡有理解錯誤的或寫錯的地方,望各位讀者評論或者私信指正,不勝感激。
--------------------- 
作者:malimingwq 
來源:CSDN 
原文:https://blog.csdn.net/malimingwq/article/details/79846558 
版權宣告:本文為博主原創文章,轉載請附上博文連結!