电工学习网

 找回密码
 立即注册
查看: 5197|回复: 0
打印 上一主题 下一主题

浮点数运算

[复制链接]
跳转到指定楼层
楼主
发表于 2015-2-28 14:45:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、浮点数的规格化
为使浮点数的表示具有唯一性并提高数据表示的精确度,提出了浮点数规格化的概念,从理论上讲,也就是使浮点数尾数的真值表示中其最高位的值非零。对于不同的数据表示,要达到规格化要求的尾数具有不同的表现形式,以双符号补码表示为例,当尾数运算结果形如11.0××…×或00.1××…×,即符号位与最高有效数据位不同时,就表明是规格化数;其它形式的尾数均为非规格化尾数,以补码为例,这些非规格化的尾数形式包括:11.1××…×、00.0××…×、10.××…×及01.××…×。
当浮点数尾数为不规格化形式时,需要对其进行规格化处理:
●当尾数为01.××…×或10.××…×时,说明尾数结果的绝对值大于1,此时只要将尾数向右算术移动一位,同时阶码值加1,就能使浮点数保持结果正确且达到规格化形式。称为右移规格化。
●当尾数为11.1××…×或00.0××…×时需要左移规格化,每算术左移一次,阶码减1,直到变成规格化数。
二、浮点数的加/减运算算法
1.阶码和尾数采用补码表示的浮点数加、减运算
设有两个浮点数: 浮点数运算
对x与y两个数作加/减法运算,则有:
   浮点数运算
浮点加、减法运算过程通常需要经过如下五个步骤:

(1)对阶:对接的目的是为了使两数的阶码变成相同,便于后续运算。对阶先求两浮点数阶码的差,然后基于小阶向大阶看齐的对接原则,增加小阶码的值同时右移对应浮点数的尾数,直到两浮点数的阶码相等;

(2)尾数运算:按照定点数的加、减运算法则对对阶后的尾数执行加/减操作;

(3)结果规格化:对结果的尾数进行规格化操作;

(4)舍入:
在对阶右移和结果右移规格化过程中,由于机器字长固定的原因,可能会丢掉部分尾数,舍入步骤就是对这种情况进行处理,以减少误差。有多种可供选择的舍入方法,如“末位恒置显1法”和“0舍1入法”等。在具体实现上,舍入既可以在最后进行,也可以在对阶和右移规格化过程中进行。

(5)溢出判断
浮点数阶码的位数决定数据范围,故浮点数的溢出以阶码的溢出为判断标志,即当阶码的双符号位为01和10时,表明运算结果溢出。对浮点数的加/减运算而言,对结果进行右移规格化的过程中,阶码值会增加,可能导致溢出。另外,还要注意舍入操作也可能使本来规格化的尾数变成非规划化数,如果由此大致右移规格化,也可能导致溢出。

具体算例如下:

例:设 浮点数运算 ,当阶码为5位(含2位符号),尾数为7位(含2位符号)时,用补码二进制浮点运算方法,计算x+y,舍入采用0舍1入法。
解:将x和y用二进制数表示
浮点数运算
(1)对阶
先求阶差: 浮点数运算
将[y]补的阶码加1,尾数右移1位,对移出的尾数采用0舍1入的舍入方法
   浮点数运算
(2)尾数相加运算:

   浮点数运算
(3) 结果规格化
两次左规操作,同时阶码值减2,得
   浮点数运算
(4)溢出判断
阶码的双符号位相同,没有发生溢出,最后的结果为:
   浮点数运算
2.IEEE754浮点数的加/减运算
IEEE754浮点数的加/减运算过程与采用补码表示阶码和尾数的浮点数的运算步骤相同,此处不再赘述,但需要关注以下两点:
1)IEEE754浮点数阶码为8位,对应的真值范围为[-128 ,127],由于IEEE754的尾数的实际形式为1.xxx…x,因此,阶码真值的实际范围为[-127,128]。采用了偏移值为127的移码,阶码真值的实际范围为[0,255],因此,阶码的机器数都为非负整数;
2)移码的加/减运算不同于补码,请参照第二章移码的加/减运算法则。
三、 浮点数的乘/除法运算
浮点数的乘/除法运算相对其加/减运算而言更为简单,可转化成两数阶码的加/减运算和尾数的乘/除运算,而定点尾数的乘/除运算其实也可以转换成加法运算实现。为了提高浮点运算的速度,可在浮点运算器中设置两个加法器,一个用于阶码的运算,另一个加法器同时进行尾数的加法运算,最后还需要对结果进行规格化。
浮点数乘/除运算时阶码加/减操作、右移规格化和舍入过程中都有可能产生溢出。由于浮点运算电路逻辑结构比较复杂,请大家参考教材或其他参考资料。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-28 02:26

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表