C语言 关于单精度实数的有效位数

单精度实数不是float型的吗 为什么有效位数只有7位呢 float型不是占4个字节32位的吗 应该可以容纳更精确的值啊

一个单精度浮点数的确占用32位。但浮点数与整数不同,其所能描述的数值范围远远大于后者。因为它是采用科学记数形式来表达数值的,即[+/-]0.xxxxxxxE[+/-]yyy的形式。也就是说是零点几几几乘上10的多少次方的形式。这样,在32位中,一位用来作符号位,4位用来表示指数部分,剩下的才能用来表达数值的有效部分,通常只能达到7位有效数字的精度。

唉,真是的!剩下的27个二进制位只能用来表达7位十进制数!

我又查了一下,指数部分需要6个二进制位,从而可以表达10的-31次方直到10的正32次方。这样只剩下25个二进制位。2的25次方是一个8位数字的十进制数,因此最大只能达到7位有效数字。刚才写的不准确,对不起!太晚了,脑子有点乱!
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-01-27
最大值应该是2的31次方,有一位作为符号数.
第2个回答  2007-01-27
在32位中,一位用来作符号位,4位用来表示指数部分,剩下的才能用来表达数值的有效部分,通常只能达到7位有效数字的精度
照上面说的,剩下的部分不是32-4-1=27位吗?
不是还有27位吗?
第3个回答  2007-01-27
困了....

C语言 关于单精度实数的有效位数
这样,在32位中,一位用来作符号位,4位用来表示指数部分,剩下的才能用来表达数值的有效部分,通常只能达到7位有效数字的精度。唉,真是的!剩下的27个二进制位只能用来表达7位十进制数!我又查了一下,指数部分需要6个二进制位,从而可以表达10的-31次方直到10的正32次方。这样只剩下25个二进制...

c语言中的单精度数据的有效位数是什么意思?
c语言中的单精度数据的有效位数是7位。c语言中的单精度浮点数的实际有效精度为24位二进制,这相当于 24*log102≈7.2 位10进制的精度。尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。

C语言中为什么单精度实数的有效位数一般为7位
因为浮点型数据在储存时使用的储存单元长度有限,因此能提供的 有效数字位数是有限的.float x;x=66666.66666;printf("%f",x);运行结果:x=66666.664063 输出结果前7位是准确的后四位是一个意想不到的数

C语言中为什么单精度实数的有效位数一般为7位。
因为浮点型数据在储存时使用的储存单元长度有限,因此能提供的 有效数字位数是有限的。float x;x=66666.66666;printf("%f",x);运行结果:x=66666.664063 输出结果前7位是准确的后四位是一个意想不到的数

c语言中,常量,变量,浮点,单精度,双精度是什么意思?举例
实型常量又称实数或浮点数。在C语言中可以用单精度型和双精度型两种形式表示实型常量,分别用类型名float和double进行定义。实型常量在一般的微型集中占用4个字节,一般形式或者指数形式,数值范围都是-1038~1038,有效数字是7位。浮点型数据又分为单精度型(float)和双精度型(double)两种。1、单(float...

单精度实数的取值范围是多少?
关于C选项,如果3.1415926不在宏函数定义中,那么它就是一个常量,只是因为它在#define命令中,所以它是一个字符串。A选项,单精度数是指计算机表达实数近似值的一种方式,而不是只明确的值,故错。D选项,双精度数也是值计算机表达实数近似值的一种方式,而不是只明确的值,故错。但是和单精度数有...

c语言中什么是单精度型和双精度型???各举个例子。。。
单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。比如3.1415926535897932384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果...

C语言中单精度数据的存储范围,求高手指点啊
单精度存储首先最高位是符号位。然后有8位的指数位。代表 2^-127 ~ 2^128 (存储时 127代表 2^0 255代表2^128 0为 2^-127)后面的23位是尾数即小数位。没有整数,在存储时会移好位,使的整数为1,如2 会存成 1*2^1 这样,1.9999*2^128 大约为 6.8*10^38 双精度的指数部分...

c语言中实数的表示类型
标准C允许浮点数使用后缀,后缀为f或F,即表示该数为浮点数。简单的说实型就是实数,就是小数,单精度实型的数据类型符为float,占用4字节内存空间,数值范围是1e-38~1e38保留7位。双精度实型的数据类型符为double,占用8字节内存空间,数值范围是1e-308~1e308保留11位。C语言是一门面向过程的、...

C语言中的 单精度型 和双精度型是什么意思
单精度和双精度最大区别就是结果精确到第几位。单精度是这样的格式,1位符号,8位指数,23位小数。双精度是1位符号,11位指数,52位小数。

相似回答