C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!

作者&投稿:粱有 (若有异议请与网页底部的电邮联系)
C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!~

根据“字节”算出来的啊
4个字节的2进制,与8个字节的2进制,表示的范围、数字大小、明显不一样,

这个最好去看一下计算机组成,里面讲到float数的表示方法,比如float数,计算机里面的存储形式是32位,第一位是符号位,第2~9这8位是2的N次方中的N,也就是阶码,阶码范围:±127,
单精度阶码:决定浮点数的数值范围。float绝对值最大最小:2^(±127)≈10^(±38)
双精度阶码:决定浮点数的数值范围。double绝对值最大最小:2^(±1023)≈10^(±306)

    今天看书也是发现了这个问题但是百度一番网上并没有想要的答案,思索后得出结果,首先浮点型是32位精度 有一个符号位8个指数位23个尾数位

关于精度的计算单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位,所以精度为6提供七位有效数字
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.00000000000000022204460492503130808472633361816
所以精度为15,提供16位有效数字。


然后关于范围的计算:范围是指数位控制的,指数位为8,有效为为7(这里涉及到余码,有兴趣的同学可以查看相关资料)所以最大范围为2^7=128 这里是指数部分 化为十进制则为

2^128=3.402823669384635E38

所以范围为3.4E-38~3.4E+38

double同理



float(单精度说明符),double(双精度说明符)单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

Type
Minimum value
Maximum value
float
1.175494351 E – 38
3.402823466 E + 38
double
2.2250738585072014 E – 308
1.7976931348623158 E + 308
MSDN上都有
float 4字节32位,1符号位,8位的指数位,再加上23位尾数
double 8字节64位,1符号位,11位指数,52位尾数

根据“字节”算出来的啊
4个字节的2进制,与8个字节的2进制,表示的范围、数字大小、明显不一样,

float的有效数字是6~7位,double的有效数字是15~16位。。。是怎么算出来的?

c语言double和float区别
答:c语言double和float区别有精度不一样,float是单精度,double是双精度,表示小数的范围不一样,double能表示的范围比float大,double在内存中,占8个字节,float在内存中,占4个字节。f默认保留6位小数,不足位以0补齐,超过六位按四舍五入的方法保留6位,若想输出指定位数,在格式化输出语句中表示变量...

C语言中单精度与双精度的区别。
答:其实就是有效位数不一样。浮点型变量分为单精度(float)、双精度(double)和长双精度(long double)3类。在Turbo C 中:比特(位)数 有效数字 float 32 6-7 double 64 15-16 long double 128 18-19 ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将double所增加的32位全...

C语言里 单精度型与双精度型怎么表示?是什么样子?
答:单精度是float 双精度是double 都是浮点型,所谓浮点就是只能表示近似值,不能表示准确值,最后的几位小数是不准确的。如:include<stdio.h> void main(){ double a=2.9999999;printf("%f ",a);a=2.99999998;printf("%f ",a);a=2.99999997;printf("%f ",a);a=2.99999996;printf("%f "...

在C语言中的实型变量分为2种类型,它们是()和()
答:C语言提供的实型变量有两种类型:单精度(float)和双精度(double)。单精度数是指计算机表达实数近似值的一种方式。VB中Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45...

c语言中实数的表示类型
答:c语言中实数的表示类型:float或double。c语言中实数有两种类型,分别是float或double;float称为单精度浮点型,double称为双精度浮点型。在C语言中实数采用10进制,它有两种形式:十进制小数形式和指数形式。指数形式:由十进制数加阶码标志e或E,以及阶码组成,n为十进制整数。标准C允许浮点数使用后缀,...

c语言中单精度浮点型和双精度浮点型分别可以保留几位小数
答:C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证,而单精度保证7位有效数字,部分数值有8位有效数.

C语言浮点型小数点后为多少位
答:单精度浮点型小数点后面有效数字为7位和双精度浮点型小数点后面有效数字为16位。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。例如,当表示美元和分时,单精度浮点型是...

在c语言中,单精度浮点数与双精度浮点数的区别与联系。
答:在C语言中,单精度浮点数(float)和双精度浮点数(double)类型都是用来储存实数的,双精度是用记忆较多,有效数字较多,数值范围较大。两种类型对应的格式字符也有不同。 以Turbo C 为例: float 单精度浮点数使用记忆:4 字符(32 位元)有效数字:6-7 位数值范围:�6�13.4...

C语言当中int,float,double,char这四个有什么区别?
答:区别在以下方面:一、定义方面:1、int为整数型,用于定义整数类型的数据 。2、float为单精度浮点型,能准确到小数点后六位 。3、double为双精度浮点型,能准确到小数点都十二位 。4、char为字符型,用于定义字符类型的数据。二、内存占据:1、int 的内存大小是4 个byte。2、float 内存大小是4 个...

单精度和双精度的区别是什么?
答:单精度和双精度是计算机科学中浮点数的两种表示方法。它们的区别主要在于以下几个方面:1.存储空间:•单精度(float)通常占用4个字节(32位)的内存空间。•双精度(double)通常占用8个字节(64位)的内存空间。2.数值范围:•单精度能表示的有效数字位数较少,一般为7位,所以它...