C语言中float到底能存多大的数?!

很多书籍和资料都显示float的数据范围是-3.4E-38到3.4E38,但是float和longint的内存空间都占4个字节,也就是多大能存11111111111111... 很多书籍和资料都显示float的数据范围是-3.4E-38到3.4E38,但是float和long int的内存空间都占4个字节,也就是多大能存11111111 11111111 11111111 11111111这么多数(换算过来是4294967295,换成有符号数是2147483647),远远到达不了3.4E38这么大啊??而且我在VC++6.0的环境下测试,float最大只能放10E19这么大的数?请给出float在内存中是如何被分配空间的?还有float和int的区别有在何处?(除了float能存小数外)。谢谢!! 展开
 我来答
ccchu0
2009-03-05 · TA获得超过800个赞
知道小有建树答主
回答量:635
采纳率:0%
帮助的人:476万
展开全部
-------符号位--指数位----小数部分----(指数偏移量 )
单精度浮点数-1位[31]--8位 [30-23]-23位 [22-00]----(127)

一般情况下,
int在内存里以2进制补码存储,跟你想的差不多,这个就不用多说了;

float存储方式如上面所示,1位符号位,指数位8位,小数位23位,共32位即4个字节。假设小数位表示的纯小数为x,指数表示的数字为n,符号为负,则这个float数字为(-(1+x))×(2^n)。

纯小数部分用补码表示,小数位的位数与可以表示的数据范围无关,只与可以表示的有效数字有关,即表示精度有关。
指数位部分用移码表示,所以可以表示的大小是2^-127到2^128,即最大的数是2^128=3.4E38。也就是说表示范围是-3.4E-38到3.4E38。
木雨日
2009-03-05
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
1位符号位 8位指数 23位尾数

这里要探讨分为两个问题:
1.有效数字的问题,就是精度问题,2的23次方约为7位有效数字,相当于10的7次方(精度)。
2.对于可容纳的最大数的问题,8位指数,其中一位为指数符号,7位最大127,2的127次方是10的38次方数量级。

明白了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
478334220
2009-03-17
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
88
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无敌特大虾米
2009-03-13
知道答主
回答量:85
采纳率:0%
帮助的人:0
展开全部
12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式