| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖, 1 人收藏
标题:关于34.6-34.0=0.5999985的计算过程
取消只看楼主 加入收藏
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
结帖率:100%
收藏(1)
 问题点数:0 回复次数:1 
关于34.6-34.0=0.5999985的计算过程
再算浮点数时,涉及到小数的处理,看了点资料,写了如下34.6-34.0=0.5999985的计算过程,麻烦大家看看对不对
————————————————————————我是分割线————————————————————————————————————————
34.6
对应二进制        100010.1001 1001 1001 1001 10
对应IEEE浮点数    1.00010 1001 1001 1001 1001 10(指数域为5,即5+127=132,对应为1000 0100)
IEEE标准机器表示  0 10000100 00010100110011001100110        ————编号A
34.0
对应二进制        100010.0000 0000 0000 0000 00
对应IEEE浮点数    1.00010 0000 0000 0000 0000 00(指数域为5,即5+127=132,对应为1000 0100)
IEEE标准机器表示  0 10000100 00010000000000000000000        ————编号B
用A的尾数域减去B的尾数域    00000100110011001100110
所以34.6-34.0的结果对应的IEEE标准机器表示为    0 10000100 00000100110011001100110        ————编号C
编号C对应为 2的-1次方+2的-4次方+2的-5次方+2的-8次方+2的-9次方+2的-12次方+2的-13次方+2的-16次方+2的-17次方    ————编号D
编号D的计算结果为0.59999847412109375        ————编号E
编号E根据“向最近有效位取舍原则”为0.5999985  (7进1,加在4上,变为5)
所以结果为0.5999985(因为0.6在转换成二进制的时候,永远都不能精确,只是依据IEEE原则和整数部分一起保留了23位有效数,所以在二进制表示上,精度为23位,当转换为十进制时,保留小数点后7位有效数字所以得到这样的结果)
————————————————————————我是分割线————————————————————————————————————————
以上是我想的计算过程,请问
       这样的计算过程对不?


   
2009-11-03 12:44
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
回复 5楼 forever74
谢谢

我可好玩啦...不信你玩玩^_^
2009-11-03 15:35
快速回复:关于34.6-34.0=0.5999985的计算过程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020937 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved