计组_浮点数加减法
2016-05-25 20:48
183 查看
•设X=Mx*2^Ex,Y= My*2^Ey,求X±Y=?
•规则:
–对阶:DE=Ex-Ey;小阶向大阶看齐。
–实现尾数的加(减)运算。
–规格化处理
•如果结果的两个符号位的值不同,表示运算尾数结果溢出,应“右规”,即尾数结果右移一位,阶码+1
•如果最高数值位与符号位相同,应“左规”,此时尾数连续左移,直到最高数值位与符号位的值不同为止;同时从阶码中减去移位的位数
–舍入处理
–检查是否溢出
例:
•X=2^(010)·0.11011011, Y=2^(100)·(-0.10101100)
•计算过程:
–①对阶操作:阶差△E=[Ex]补+[-Ey]补=00010+11100=11110
X阶码小,Mx右移2位,保留阶码E=00100
[Mx]补=00 00110110 11
–②尾数相加:[Mx]补+[My]补=00 00110110 11+11 01010100
=11 10001010 11
–③规格化操作:左规,移一位,结果=11 00010101 10
阶码减1,E=00011
–④舍入:附加位最高位为1,在结果的最低位+1,
得新结果[M]补=11 00010110,M=-0.11101010
–⑤判溢出:阶符为00,不溢出,最终结果为
X+Y=2011·(-0.11101010)
•规则:
–对阶:DE=Ex-Ey;小阶向大阶看齐。
–实现尾数的加(减)运算。
–规格化处理
•如果结果的两个符号位的值不同,表示运算尾数结果溢出,应“右规”,即尾数结果右移一位,阶码+1
•如果最高数值位与符号位相同,应“左规”,此时尾数连续左移,直到最高数值位与符号位的值不同为止;同时从阶码中减去移位的位数
–舍入处理
–检查是否溢出
例:
•X=2^(010)·0.11011011, Y=2^(100)·(-0.10101100)
•计算过程:
–①对阶操作:阶差△E=[Ex]补+[-Ey]补=00010+11100=11110
X阶码小,Mx右移2位,保留阶码E=00100
[Mx]补=00 00110110 11
–②尾数相加:[Mx]补+[My]补=00 00110110 11+11 01010100
=11 10001010 11
–③规格化操作:左规,移一位,结果=11 00010101 10
阶码减1,E=00011
–④舍入:附加位最高位为1,在结果的最低位+1,
得新结果[M]补=11 00010110,M=-0.11101010
–⑤判溢出:阶符为00,不溢出,最终结果为
X+Y=2011·(-0.11101010)
相关文章推荐
- 【CSS进阶】伪元素的妙用--单标签之美
- hdu3709Balanced Number【数位dp记忆化搜索】
- Spark性能优化指南——高级篇
- LaTeX新人教程,30分钟从完全陌生到基本入门
- oracle按rownum更新数据
- PHP需注意的10个特性
- Singleton in C++11 style
- 分解素因子----唯一分解定理
- 9.1顺序容器概念
- wxpython学习笔记(一)
- Group Anagrams
- “甩老族”现象。
- ECSHOP安装或使用中提示Strict Standards: Non-static method cls_image:
- memcached加日志
- OpenSSL简介
- Spark性能优化指南——基础篇
- 重新认识装饰模式——结合技术简单分析
- SQL Server Storage
- 计算机内存
- HDU 5438 Ponds