浮点数的加减法运算.docx

上传人:b****3 文档编号:12715621 上传时间:2023-04-21 格式:DOCX 页数:10 大小:229.67KB
下载 相关 举报
浮点数的加减法运算.docx_第1页
第1页 / 共10页
浮点数的加减法运算.docx_第2页
第2页 / 共10页
浮点数的加减法运算.docx_第3页
第3页 / 共10页
浮点数的加减法运算.docx_第4页
第4页 / 共10页
浮点数的加减法运算.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

浮点数的加减法运算.docx

《浮点数的加减法运算.docx》由会员分享,可在线阅读,更多相关《浮点数的加减法运算.docx(10页珍藏版)》请在冰豆网上搜索。

浮点数的加减法运算.docx

浮点数的加减法运算

浮点数的加减法运算

 

 

计算机组成与结构

浮点数的加减法运算

 

学生组所在学院:

燕山大学信息学院

学生组所在班级:

2014级计算机1班

学生组姓名:

陈朝俊张海傅晓欣曲佳彤

 

浮点数的表示形式(假设以2为底):

N=M·2E

其中,M为浮点数的尾数,一般为绝对值小于1的规格化二进制小数,用原码或补码形式表示;E为浮点数的阶码,一般是用移码或补码表示的整数。

阶码的底除了2以外,还有用8或16表示的,这里暂且只以2为底进行讨论。

浮点数加减法运算的步骤

设两浮点数X、Y进行加减运算,其中:

X=MX·2EX,Y=MY·2EY

一般由以下五个步骤完成:

规格化浮点数加减运算流程

一、对阶

1.对阶是指将两个进行运算的浮点数的阶码对齐的操作。

对阶的目的是为了使两个浮点数的尾数能够进行加减运算。

因为,当进行MX·2EX与MY·2EY加减运算时,只有使两浮点数的指数值部分相同,才能将相同的指数值作为公因数提出来,然后进行尾数的加减运算。

2.对阶的具体方法是:

首先求出两浮点数阶码的差,即ΔE=Ex-Ey,将小阶码加上ΔE,使之与大阶码相等,同时将小阶码对应的浮点数的尾数右移ΔE位,以保证该浮点数的值不变。

3.几点注意:

(1)对阶的原则是小阶对大阶,因为若大阶对小阶,则尾数的数值部分的高位需移出,而小阶对大阶移出的是尾数的数值部分的低位,这样损失的精度更小。

(2)若ΔE=0,说明两浮点数的阶码已相同,无需再做对阶操作。

(3)尾数右移时,对原码表示的尾数,符号位不参加移位,尾数数值部分的高位补0;对补码表示的尾数,符号位参加右移,并保持原符号位不变。

(4)由于尾数右移时是将最低位移出,会损失一定的精度,为减少误差,可先保留若干移出的位,供以后舍入处理用。

二、尾数的加减运算

执行对阶后,两尾数进行加/减运算,得到两数之和/差。

三、结果规格化

1.规格化的目的是使尾数部分的绝对值尽可能以最大值的形式出现。

设尾数M的数值部分有n位,规格化数的范围为:

1/2≤|[M]原|≤1-2-n,1/2≤[M]补≤1-2-n(当M为正),

1/2≤|[M]补|≤1(当M为负)。

2.当运算的结果(和/差)不是规格化数时,需将它转变成规格化数。

双符号位的原码规格化尾数,其数值的最高位为1;双符号位的补码规格化尾数,应是00.1XX···X或11.0XX···X(X可为0或1)。

3.规格化操作的规则是:

①如果结果的两个符号位的值不同,表示加减运算尾数结果溢出,此时将尾数结果右移1位,阶码E+1,称为“向右规格化”,简称“右规”。

②如果结果的两个符号位的值相同,表示加减运算尾数结果不溢出。

但若最高数值位与符号位相同,此时尾数连续左移,直到最高数值位与符号位的值不同为止;同时从E中减去移位的位数,这称之为“向左规格化”,简称“左规”。

四、舍入处理

1.浮点运算在对阶或右规时,尾数需要右移,被右移出去的位会被丢掉,使运算结果精度受到影响。

为减少精度损失,可以将一定位数的移出位先保留起来,称为保护位,在规格化后用于舍入处理。

2.IEEE754标准列出了四种可选的舍入处理方法:

(1)0舍1入:

这是标准列出的默认舍入方式,相当于十进制中的“四舍五入”,即当丢失的最高位的值为1时,把这个1加到尾数末位上进行修正(若加1后又使尾数溢出,则再进行一次右规),否则舍去丢失的各位的值。

(2)朝+∞舍入:

对正数来说,只要多余位不为全0,则向尾数最低有效位进1;对负数来说,则是简单地舍去。

(3)朝-∞舍入:

与朝+∞舍入方法正好相反,对正数来说,只是简单地舍去;对负数来说,只要多余位不为全0,则向尾数最低有效位进1。

(4)朝0舍入:

简单地截断舍去,而不管多余位是什么值。

这种方法处理简单,但容易形成累积误差。

五、溢出判断

与定点数运算不同的是,浮点数的溢出是以其运算结果的阶码的值是否产生溢出来判断的。

若阶码的值超过了阶码所能表示的最大正数,则为上溢,置溢出标志,若此时浮点数为正数,则为正上溢,记为+∞,若浮点数为负数,则为负上溢,记为-∞;若阶码的值超过了阶码所能表示的最小负数,则为下溢,若此时浮点数为正数,则为正下溢,若浮点数为负数,则为负下溢。

正下溢和负下溢都作为0处理(通常将阶码和尾数全部置0)。

要注意的是,浮点数的表示范围和补码表示的定点数的表示范围是有所不同的,定点数的表示范围是连续的,而浮点数的表示范围可能是不连续的。

如下图所示。

【例】两浮点数相加,求X+Y。

已知:

X=2º¹º∙0.11011011,Y=2¹ºº∙(-0.10101100),求X+Y。

解:

X和Y在运算器中的浮点补码表示形式为(双符号位):

    

阶符 阶码 数符 尾数

   X:

00  010 00 11011011

   Y:

00  100  11 01010100

(1)对阶

阶差△E=Ex-Ey=[Ex]补+[-Ey]补=00010+11100=11110

即△E为-2,X的阶码小,应使Mx右移2位,保留阶码E=00100.

         [Mx]补=000011011011

其中11表示Mx右移出去而保留的附加位。

(2)尾数相加

[Mx]补000011011011

+[MY]补+1101010100

    ─────────────────────

     111000101011

(3)结果规格化

尾数运算结果的符号位与最高数值位相同,应进行左规处理,结果=110001010110,阶码减一,E=00011。

(4)舍入处理

采用0舍1入法处理,保护位最高位为1,在所得结果最低位+1,得[Mx]补=1100010110,M=-0.11101010.

(5)溢出处理

阶码符号位为00,故不溢出,最终结果为:

X+Y=2º¹¹∙(-0.11101010)

实现浮点运算的加法器逻辑电路原理框图如下图所示。

 图中,三个寄存器R0、R1和R2分别存放两个参加运算的浮点数和结果。

第一步对阶,首先由ΔE加法器求出两个浮点数阶码的差值,然后由控制电路控制选择小阶码浮点数的尾数进入右移寄存器进行对阶时的右移,右移结果送入尾数加法器的一个输入端,大阶码浮点数的尾数则直接送入加法器的另一个输入端;第二步尾数相加减;第三步规格化,由尾数加法器产生的结果经规格化部件,一方面送移位寄存器进行尾数移位,另一方面控制选择大阶码进行阶码的增或减操作;第四步由舍入部件对规格化后的尾数进行舍入处理,并将结果送结果寄存器的尾数字段;第五步溢出处理,由溢出判别部件对规格化后的阶码进行溢出判别,若未溢出,则将结果送结果寄存器的阶码部分。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1