结果规格化—规格化浮点数的加减运算

一.对运算结果进行规格化处理

(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,满足规格化条件,结果规格化。

若是哪里有理解错误的或写错的地方,望各位读者评论或者私信指正,不胜感激。

猜你喜欢

转载自blog.csdn.net/malimingwq/article/details/79846558