77范文网 - 专业文章范例文档资料分享平台

浮点数加减运算课件

来源:网络收集 时间:2020-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

如果一个二进制浮点数的尾数的绝对值小于1并且大于等于0.5,(1>|尾数|≥0.5),那么这个二进制浮点数就是一个规格化的浮点数。

用二进制补码表示1个规格化的浮点数,并且规格化的浮点数的尾数只有一个符号位时:

规格化的浮点数的尾数是正数时应该是 0 . 1 X X X X X X X X X ……的形式 (0表示符号位,X表示0或1中的任意一个数值)

规格化的浮点数的尾数是负数时应该是 1 . 0 X X X X X X X X X ……的形式 (1表示符号位,X表示0或1中的任意一个数值)

用二进制补码表示1个规格化的浮点数,并且规格化的浮点数的尾数只有两个符号位时:

规格化的浮点数的尾数是正数时应该是 00 . 1 X X X X X X X X X ……的形式 (00表示符号位,X表示0或1中的任意一个数值)

规格化的浮点数的尾数是负数时应该是 11 . 0 X X X X X X X X X ……的形式 (11表示符号位,X表示0或1中的任意一个数值)

两个浮点数加减法的计算结果必须规格化,如果不是规格化的数,则要通过修改阶码并同时左移或者右移尾数,使其变为规格化的数。

[例] x=2

010

×0.11011011,y=2

100

×-

0.10101100,浮点数均以补码表示,阶码采用双符号位,尾数采用单符号位。 求x+y 。

答:

(步骤1)转换成题目中要求的浮点数格式:

浮点数x=2010×0.11011011的阶码是+010,尾数是+0.11011011 浮点数均以补码表示,所以阶码以补码表示,并且阶码采用双符号位, [x]浮的阶码=00010(00是两个符号位)

浮点数均以补码表示,所以尾数以补码表示,并且尾数采用单符号位, [x]浮的尾数=0.11011011(0是1个符号位)

浮点数y=2100×-0.10101100的阶码是+100,尾数是 - 0.10101100 浮点数均以补码表示,所以阶码以补码表示,并且阶码采用双符号位, [y]浮的阶码=00100(00是两个符号位)

浮点数均以补码表示,所以尾数以补码表示,并且尾数采用单符号位, [y]浮的尾数=1.01010100(1是1个符号位)

(y=2100×-0.10101100中10101100先取反变为01010011,再加1后变为01010100)

[x] 浮=00010, 0.11011011; [y] 浮=00100, 1.01010100;

(步骤2)阶数对齐:

x的阶码是+2(二进制00010),y的阶码是+4(二进制00100),阶码小的向阶码大的数对齐, x的阶码向y的阶码对齐。

x的阶码加2,从00010变成00100 ,此时x的阶码与y的阶码相等。

[x]浮尾数0.11011011右移两位(小数点不动,左边添加两个符号位,因为x的尾数是正数,所以添加的两个符号位是0),

[x]浮尾数变为0.00110110(11)

0.11011011(右移两位,小数点不动,左边添加两个符号位) 0.00110110(11)

因为x的阶码与y的阶码相等,都是00010,所以把x的尾数与y的尾数相加。

(步骤3)尾数相加

0. 0 0 1 1 0 1 1 0 (11) + 1. 0 1 0 1 0 1 0 0

———————————————— 1. 1 0 0 0 1 0 1 0 (11)

注意:

因为y的尾数没有对应的位数,所以(11)直接落下来进入结果; x尾数的符号位0与y尾数的符号位1同样参与到加法运算。

(步骤4)判断计算结果是否溢出:

当计算结果的尾数只有一个符号位时,符号位与小数点后第一位相等,则没有溢出;如果符号位与小数点后第一位不等,则产生溢出。

一旦发生溢出,计算结果的尾数右移一位,同时阶码加一。

本题中计算结果的尾数是1. 1 0 0 0 1 0 1 0 (11),其中符号位是1,小数点后第一位是1 ,二者相等,没有溢出。

(步骤5)判断计算结果是否满足规格化:

用二进制补码表示1个规格化的浮点数,并且规格化的浮点数的尾数只有一个符号位时:

规格化的浮点数的尾数是正数时应该是 0 . 1 X X X X X X X X X ……的形式 (0表示符号位,X表示0或1中的任意一个数值)

规格化的浮点数的尾数是负数时应该是 1 . 0 X X X X X X X X X ……的形式 (1表示符号位,X表示0或1中的任意一个数值)

本题中计算结果的尾数是1. 1 0 0 0 1 0 1 0 (11),不满足规格化的浮点数的尾数是负数时应该是 1 . 0 X X X X X X X X X ……的形式,因此不是规格化的浮点数。

为了规格化,本题中计算结果的尾数是1. 1 0 0 0 1 0 1 0 (11),左移1位,同时阶码减一。(只能左移,而且左移1位就可以了)

原来的计算结果

[x+y] 浮=00100, 1. 1 0 0 0 1 0 1 0 (11);

规格化后(尾数左移1位,小数点不动,右边添加一个0;同时阶码减一) [x+y] 浮=00011, 1 . 0 0 0 1 0 1 0 1 (10);

尾数1 . 0 0 0 1 0 1 0 1,满足规格化的浮点数的尾数是负数时应该是 1 . 0 X X X X X X X X X ……的形式,因此是规格化的浮点数。

(步骤6)计算结果舍入处理

就近舍入(0舍1入) 法:

类似”四舍五入”,丢弃的最高位为1,进1;本题丢弃的是(10),最高位为1,所以向上进1位

则有

1 . 0 0 0 1 0 1 0 1 + 1

──────────────── 1. 0 0 0 1 0 1 1 0 结果为[x+y] 浮=00011, 1 . 0 0 0 1 0 1 1 0;

直接舍弃法:

本题 (10)被直接舍弃。结果为[x+y] 浮=00011, 1 . 0 0 0 1 0 1 0 1;

35[例] x=8,y=16,用变形补码计算x+y,并指出

结果是否溢出。

答:

(步骤1)转换成题目中要求的浮点数格式:

3-3-3-1x==(3)10×2=(11)2×2=(0.11)2×2 85-4-4-1y==(5)10×2=(101)2×2=(0.101)2×2 16 ( )10表示十进制数,( )2表示二进制数。

浮点数x=(0.11)2×2-1的阶码是-1,尾数是+0.11。变形补码要求本题中阶码采用补码形式并且两个符号位;尾数采用补码形式并且两个符号位。

[x]浮的阶码=11111(11是两个符号位;1对应二进制是001,001取反后是110,110再加1变成111)

[x]浮的尾数=00.11000000(00是两个符号位;题目没写尾数几位,自己假定尾数10位)

浮点数y=(0.101)2×2-1的阶码是-1,尾数是+0.101。

[y]浮的阶码=11111(11是两个符号位;1对应二进制是001,001取反后是110,110再加1变成111)

[y]浮的尾数=00.10100000(00是两个符号位;题目没写尾数几位,自己假定尾数10位)

[x] 浮=11111, 00.11000000;

[y] 浮=11111, 00.10100000;

(步骤2)阶数对齐:

x的阶码是-1(二进制11111),y的阶码是-1(二进制11111)

因为x的阶码与y的阶码相等,都是11111,所以不用移位处理,直接把x的尾数与y的尾数相加。

(步骤3)尾数相加

00.11000000 + 00.10100000

———————————————— 01.01100000

注意:

x尾数的符号位00与y尾数的符号位00同样参与到加法运算。

(步骤4)判断计算结果是否溢出:

当计算结果的尾数有两个符号位时,两个符号位相等,则没有溢出;如果两个符号位不等,则产生溢出。一旦发生溢出,计算结果的尾数右移一位,同时阶码加一。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库浮点数加减运算课件在线全文阅读。

浮点数加减运算课件.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1091665.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: