yinsongzhu的个人空间 https://blog.eetop.cn/145970 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

关于float,double等表示的数值范围的计算

热度 1已有 21422 次阅读| 2010-6-21 19:05 |个人分类:C语言

天气: 晴朗
心情: 平静

最近看了IEEE754浮点数的表示方法。在C的参考书中有提到float类型数据的表示范围为-3.4*10^38~+3.4*10^38。究竟如何计算该范围,分析如下:

 

对于单精度浮点数(float)来说,有一位符号位,指数位共8位,尾数共23位。指数能够表示的指数范围为-128~127。尾数为23位。当尾数全1时再加上小数点前面的1,指数取到最大正数1278位,正数最大127,负数最小-128,浮点数取得正数的最大值。

 

+1.111111111111111111111*2^1271.后面231,由于尾数的范围12,其最高位总为1,故只需存取小数部分,所以小数为是231),约等于2*2^127=3.4*10^38。为3.4*10^38负数亦然。

 

Double的计算与此类似,double的符号位为63位,指数为6252位,共11位。表示的范围为-10241023。尾数为510。表示的范围为+1.111111111111111111111*2^10231.后面521)为1.7*10^308。负数亦然。


点赞

发表评论 评论 (2 个评论)

回复 mycolee 2010-6-27 21:39
介绍还是很详细的阿!
回复 QBB 2021-9-29 17:24
最大值的计算,1.111...约等于2是不是步子有点大呀

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 2

    评论
  • 280

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-3 02:51 , Processed in 0.015604 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部