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…这到底是怎么回事…还请高人不吝赐教!

C语言中float型数据表示的最大数字为3.402823E38。

FLOAT数据类型用于存储单精度浮点数。具有4个字节,包括一个符号位、一个8位二进制指数和一个23位尾数。由于尾数的高顺序位始终为1,因此它不是以数字形式存储的。此表示形式为float类型,提供了一个在-3.402823E38到3.402823E38之间的范围。

扩展资料:

FLOAT数据类型变量可以提升为更大基数的类型(从 float 类型到 double 类型)。当对浮点变量执行算术时,通常会出现提升。此算术始终以与具有最高精度的变量一样高的精度执行。

如果存储比精度更重要,优先考虑对浮点变量使用 float 类型。相反,如果精度是最重要的条件,则优先使用 double 类型。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-03
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)
第2个回答  2012-03-23
其实这几种说法都没有错.不过2^104*(2^23 -1 )貌似应该是2^104*(2^24 -1).然后2^128和3.4E+38都是估计值
最好是你自己看一下IEEE754标准.
网上不好搜的话可以看<深入理解计算机系统>第二版第二章的2.4.2小节,讲的很详细.
另外,指数的范围是-126~+127.具体原因也是自己去看书.
内容不多,两三页纸,但是只靠我打字太难说明白本回答被提问者采纳
第3个回答  2015-10-19
其实这几种说法都没有错.不过2^104*(2^23 -1 )貌似应该是2^104*(2^24 -1).然后2^128和3.4E+38都是估计值
最好是你自己看一下IEEE754标准.
网上不好搜的话可以看<深入理解计算机系统>第二版第二章的2.4.2小节,讲的很详细.
另外,指数的范围是-126~+127.具体原因也是自己去看书.
内容不多,两三页纸,但是只靠我打字太难说明白
第4个回答  2012-03-23
我们的老谭的C教材上说float型数据的范围是-3.4×10的-38次方至3.4×26位尾数中有一个符号位也就是最大的数是+/-(2^25-1)*(+/-2^5-1,

C语言中float型数据表示的最大数字到底是多少啊?
C语言中float型数据表示的最大数字为3.402823E38。FLOAT数据类型用于存储单精度浮点数。具有4个字节,包括一个符号位、一个8位二进制指数和一个23位尾数。由于尾数的高顺序位始终为1,因此它不是以数字形式存储的。此表示形式为float类型,提供了一个在-3.402823E38到3.402823E38之间的范围。

C语言中float型数据表示的最大数字到底是多少啊?
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*...

在C语言中float数据数值范围是多少?
C语言中,float 为单精度浮点数,占4字节,其数值范围为3.4E-38 ~3.4E+38或者-(3.4E-38 ~3.4E+38)float的指数位有8位,尾数位有23位,符号位1位。于是,float的指数范围为-127~+128,按补码的形式来划分。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所...

在c语言中float数据数值范围是多少?
在C语言中,float数据类型的数值范围为大约-3.4E38到3.4E38。关于float数据类型的数值范围,可以从以下几个方面进行解释:一、float数据类型概述 在C语言中,float是一种单精度浮点数据类型,用于表示带有小数点的数值。它通常占用内存中的4个字节。二、数值范围细节 float数据类型的数值范围是从一个很...

c语言中,float变量能存的最大数是?
c语言中,float占4个字节,每位字节占8位,所以最大数应该是2^32-1;变量的储存形式就应该是占着内存,就是一个空间

C中的float和double的有效数字和精度各是多少?
C语言中的浮点数类型float和double在有效数字和精度上有所差异。float占用32位,其中1位用于符号,8位表示指数,剩余23位作为尾数。由于指数部分的8位可以表示从-128到127,实际范围大约是-3.4E38到3.4E38。double则为64位,其中1位符号,11位指数,52位尾数。double的范围大约是-1.7E308到1.7E308...

在C语言中float数据数值范围是多少?
C语言中的float数据类型是一种单精度浮点数,占用4个字节。其数值范围极其广泛,从3.4E-38到3.4E+38,或者相反方向的-(3.4E-38到3.4E+38)。float的精度由其内部结构决定,包括8位的指数位、23位的尾数位以及1位的符号位。指数部分的范围是-127到+128,采用补码表示法。负指数表示的是float可以...

c中的float和double的有效数字和精度各是多少?
1. float类型:有效数字:通常为7\\~8位。精度:能精确到小数点后6\\~7位。double类型:有效数字:通常为15\\~16位。精度:能精确到小数点后14\\~15位。但实际的精度和有效数字可能会因具体实现和编译器而异。详细解释:在C语言中,float和double是用于表示浮点数的数据类型。它们的名称分别表示单精度...

float在C语言中是什么意思?具体的。double呢?谢谢!
float在C语言中是 单精度浮点数, double 是双精度浮点数。它们精度不同,能表示的数值范围大小不同。单精度浮点数,4字节, 字长32位,有一位符号位,指数位共8位,尾数共23位。 指数能够表示的指数范围为-128~127。float的精度为6~7位有效数字。 float的范围为-2^128 ~ +2^128,也即-3...

c语言float最大值保留几位小数点?
float类型默认保留小数点后6位,若是要输出一位或者其他位数,可以按照以下形式进行输出:printf("%.(这里输入要输出的位数)f",x);如输出一位:printf("%.1f",x);

相似回答