为什么float类型的变量可以表示2*2^23个有效数字而不是2^23个?

 我来答
百度网友9ac42cf
2011-12-17 · TA获得超过225个赞
知道答主
回答量:41
采纳率:0%
帮助的人:28万
展开全部
以C语言为例给你说吧,C语言中,当定义为 unsigned float a(也就是“float a”,一般这样写就是不考虑正负的)时他只表示正的实数,这时候可以表示2^23个有效数字;
当定义为 signed float a时,他可以表示负的实数,此时他可以表示可以表示2*2^23个有效数字。
至于你说的为什么“2*2^23个有效数字”,这样说吧,C语言编译系统为float型变量提供了4个字节(计32个位)的空间,当为“unsigned float”(即声明为“float”时)时,最高你那一位存的就是0;当为“signed float”(即声明为“signed float”时)时,若为正,最高位是0;若为负,最高位是1.这样自然float类型的变量只可以表示2^23个有效数字。
不知道我这样说你明白不,要是还不明白可以说
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式