免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1304 | 回复: 2
打印 上一主题 下一主题

C语言浮点数? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-05 16:49 |只看该作者 |倒序浏览
本帖最后由 aionmd 于 2012-06-05 17:50 编辑

http://geeklu.com/2011/03/ieee754-floating-point-arithmetic/


“三.问题解析
所以0.1的二进制为
0.00011001100110011001100110011….
现在将其表示为IEEE 754 浮点数的形式
0.1是正数,符号位为0,0.00011001100110011…=1.100110011001…X2(-4)
所以其指数是-4,加上1023就是1019,1019的二进制值是01111111011
剩下的就是尾数部门了,去除首尾的整数部分,末尾待舍去的是1001…所以需要向前进一位“

------------------------------------------------------------------------------------------------------------------------

指数位(正数或负数)+偏移量=指数位(正数)

double 0.1;

十进制:0.1
二进制:0.0 0011 0011 0011 0011… //由0011开始循环
二进制科学记数法:1.100110011001…X2(-4)

二进制存储格式:
  符号位 指数位 尾数位 //指数位+偏移量
  0 -4 1 0011 0011... //尾数只取小数点后面部分
  0 -4+(1023) 1 0011 0011...
  0 1111111011 1 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 001
  0 01111111011 1 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 001+1
  //尾数+1
  0 01111111011 1 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 010
  //二进制存储格式



问题:
1.所有的十进制浮点数转二进制都有循环的部分,对否?

2.指数位+偏移量=正指数,指数位部分变正数,有什么作用?

3.尾数只取小数点后面部分,尾数+1,这个1是否是表示小数点整数部分的1。怎样解码?

论坛徽章:
0
2 [报告]
发表于 2012-06-05 17:44 |只看该作者
{:3_198:}                                               

论坛徽章:
0
3 [报告]
发表于 2012-06-06 09:13 |只看该作者
lollol
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP