| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6875 人关注过本帖
标题:关于C语言中,float的取值范围计算.
只看楼主 加入收藏
ccharlie
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-7-8
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
关于C语言中,float的取值范围计算.
我理解中的,
1:浮点数:+/-mantissa * 2^exponent.这是754里的定义
2:float占4字节,32位,其中1位表示符号,8位表示指数exponent(实际要减去127),23位表示底数.

那么根据我的计算,浮点数a=m * 2^e

m底数23位,可以表示2^23个数.
e指数8位,可以表示0-255,为了表示负数,实际是-127到128.

所以,
范围应该是,最小,-2^23 * 2^-127,到最大2^23 * 2^128

结果是,我错了。
洗个澡回来,希望有人指导错在哪里
搜索更多相关主题的帖子: C语言 
2012-07-08 22:26
飘青
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2012-7-8
收藏
得分:0 
同等答案
2012-07-08 23:03
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:20 
你的理解没什么问题

写出来有误,范围是:
-2^23 * 2^128,到最大2^23 * 2^128
数的正负和指数的正负是两码事。
2012-07-09 12:31
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <limits.h> //整数限制
#include <float.h>  //浮点数限制
void main()
{
    printf("the FLOAT_MAX number is : %f\n",FLT_MAX); //float的最大值
    printf("the FLOAT_MIN number is : %f\n",FLT_MIN); //float的最小值

}

程序运行结果:
the FLOAT_MAX number is : 340282346638528860000000000000000000000.000000
the FLOAT_MIN number is : 0.000000
Press any key to continue



[ 本帖最后由 yuma 于 2012-7-9 13:10 编辑 ]

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-07-09 13:09
ccharlie
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-7-8
收藏
得分:0 
回复 3楼 silent_world
实际情况是只看指数不看底数这是为什么
2012-07-13 10:29
快速回复:关于C语言中,float的取值范围计算.
数据加载中...
 
   



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

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