| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 35726 人关注过本帖, 1 人收藏
标题:C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮 ...
只看楼主 加入收藏
qjunshen
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-5-11
结帖率:75%
收藏(1)
已结贴  问题点数:20 回复次数:8 
C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!
如题,最好能给出详尽的解释,谢谢大虾了!
搜索更多相关主题的帖子: 单精度 C语言 数值 数据 
2010-08-18 12:16
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:5 
实数的计算机内部表示由具体系统规定,其中不少系统采用通行的国际标准(IEEE 标准,IEEE 是电子电器工程师协会,是一个著名的国际性技术组织):
(1)  浮点类型的数用4个字节32位二进制表示。这样表示的数大约有7位十进制有效数字,数值的表示范围约为±(3.4×10^38…3.4×10^38);
(2)  双精度类型的数用8个字节64位二进制表示,双精度数大约有16位十进制有效数字,数值的表示范围约为±(1.7×10^308…1.7×10^308);
(3)  长双精度类型的数用10个字节80位二进制表示,大约有19位十进制有效数字,其数值的表示范围约为±(1.2×10^4932—1.2×10^4932)


[ 本帖最后由 jack10141 于 2010-8-18 12:35 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-18 12:24
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:5 
单精度规定用8位二进制表示阶数,即最大表示为2的128次方,把这个数算出来是3.4028236692093846346337460743177e+38
双精度规定用11位二进制表示阶数,即最大表示为2的1024次方,结果是1.797693134862315907729305190789e+308

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-18 16:22
a279742336
Rank: 2
等 级:论坛游民
帖 子:36
专家分:24
注 册:2010-7-20
收藏
得分:5 
float(单精度说明符),double(双精度说明符)
单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
2010-08-18 16:26
qjunshen
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-5-11
收藏
得分:0 
float的有效数字是6~7位,double的有效数字是15~16位。。。是怎么算出来的?
2010-08-19 13:37
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:5 
单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.00000000000000022204460492503130808472633361816
前面0有多少个,就表示能精确到那一位

御坂御坂御坂详细地计算解释道
收到的鲜花
  • heartnheart2010-08-19 13:49 送鲜花  10朵   附言:很详细,赞!

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 13:44
zclaile
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2010-8-20
收藏
得分:0 
学习了。。。
2010-08-20 12:37
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
厉害,现在才明白,给学生都没讲清楚(兼职)非常感谢

2010-10-24 20:30
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:0 
以下是引用御坂美琴在2010-8-19 13:44:02的发言:

单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.00000000000000022204460492503130808472633361816
前面0有多少个,就表示能精确到那一位

御坂御坂御坂详细地计算解释道


精彩,网上查了好久都没找到好结果.这下懂了 嘿嘿

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2011-01-15 15:35
快速回复:C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请 ...
数据加载中...
 
   



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

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