浮点数加减运算

coolhandsliu 2013-03-27 01:18:34
X=2^010*0.11011011, Y=2^100*(-0.10101100)求:x+y
答案:
写出X、Y的正确的浮点数表示:
阶码用 4 位移码 尾数用 9 位原码
(含符号位 ) (含符号位 )
[X]浮 = 0 1010 11011011
[Y]浮 = 1 1100 10101100(为什么阶码用4位移码表示就是1010和1100了,怎么计算的啊)
为运算方便,尾数写成模 4 补码形式:
[MX]补= 00 11011011
[MY]补= 11 01010100
X=2010*0.11011011, Y=2100*(-0.10101100)
(1)计算阶差:
E = EX -EY= EX +(-EY) = 1 010 + 0 100 = 0 110(下面的注意又是什么意思啊,阶差不是0110(真值就是6啊),该怎么理解?

注意:阶码计算结果的符号位在此变了一次反,结果为 -2 的 移码,是X的阶码值小,使其取 Y 的阶码值1100(即 +4);
因此,修改 [MX]补 =00 0011011011(即右移 2 位)
(2)尾数求和:00 0011011011
+ 11 01010100
11 1000101011
X=2010*0.11011011, Y=2100*(-0.10101100)
(3)规格化处理:
相加结果的符号位与数值的最高位同值,应执行一次左规操作,故得 [MX]补 = 1 000101011,[EX]移 = 1 011
(4)舍入处理:采用 0 舍 1 入方案,要入,在最低位加 1
11 00010101
+ 00 00000001
11 00010110 (其原码表示为 1 11101010)
(5)检查溢出否:和的阶码为 1011,不溢出
计算后的 [X]移 = 1 1011 11101010 ,即 2^3*(-0.11101010)
...全文
450 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,958

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧