C语言中float型数据表示的最大数字到底是多少啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中float型数据表示的最大数字到底是多少啊?相关的知识,希望对你有一定的参考价值。

我查了下资料,说C语言中对float型数据的存储,采用 IEEE 754 的标准。第一位是符号位,接下来8位是指数位,最后23位是指数位,包含一个隐含的1. 那么float的最大数字就应该是 1.1...(小数部分23个1)*2^127=2^104*(2^24 -1)约等于3.4E+38 和谭浩强课本上的是一样的。 可是我查过资料,有的说是float最大的数2^128,还有的说是2^104*(2^23 -1 ),它们也约等于3.4E+38啊……到底哪个是正确的啊?同时,有的资料还说8位的指数范围是-127~128。可是我觉得应该是-128~127…这到底是怎么回事…还请高人不吝赐教!

参考技术A float类型所能表示的最大数字为3.4*10^38,即3.4E38。
float是C语言中的一个数据类型的关键字,表示单精度浮点型(双精度浮点型为double)。
定义格式为:
float
a;
//
a表示一个浮点型的变量
C语言规定浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38
~3.4*10^38或者-(3.4*10^-38
~3.4*10^38)

为啥C语言中float型变量的数据范围比int大

主要有如下三个区别:

1、表示的数据范围不同。C语言中的int变量通常的表示范围为-2147483648~2147483647,也就是-2^31到2^31之间。而-3.4E+38 ~ 3.4E+38则是float类型表示的数据范围。float表示的数据范围要大于int表示的数据范围。


2、变量赋值方法不同。C语言中,将i设定为一个int变量并赋值的方法为:int i=xx;,其中xx为一个整数,例如3、4、5,不可以是小数。将i设定为一个float变量的方法为:float i=yy;,其中yy为一个浮点型数,可以带上小数点,例如3.0、4.5、5.7等等。

3、字节构成不同。int和float类型在计算机中都占4个字节,但是float类型的4个字节构成为包括一个符号位、一个8位二进制指数和一个23位尾数,而int类型的4个字节构成全部为整数。

参考技术A 浮点数的本质是采用科学计数法,所以表示范围能够扩大很多倍,付出的代价是牺牲了精度,精度变成动态的了、与数值大小成正比。

以上是关于C语言中float型数据表示的最大数字到底是多少啊?的主要内容,如果未能解决你的问题,请参考以下文章

C语言 一个int型到底可以表示多大的数字?

C语言中float是啥意思

c语言怎么求当前电脑能表示的最大整型数?

PHP-Manual的学习----语言参考----类型-----float浮点型

求C语言中float型数据的表示范围

c语言中float(input())怎么理解?