00问答网
所有问题
float的范围和有效数字怎么算出来的?
范围是3.4E-38 ——3.4E+38,可提供7位有效数字。这两个量是怎么来的?
举报该问题
推荐答案 推荐于2017-09-23
首先说一下:
范围是3.4E-38 ——3.4E+38,可提供7位有效数字。
上述这两个量都是近似值,各个编译器不太一样的。
下面我就将标准值是怎么定义的,和你说一下:
这个比较复杂,建议你找一下IEEE754标准看一下。
这个简单说一下吧:
在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,double有64bit。它们的构成包括符号位、指数位和尾数位。
这些位的构成如下:
种类-------符号位-------------指数位----------------尾数位----
float---第31位(占1bit)---第30-23位(占8bit)----第22-0位(占23bit)
double--第63位(占1bit)---第62-52位(占11bit)---第51-0位(占52bit)
取值范围主要看指数部分:
float的指数部分有8bit(2^8),由于是有符号型,所以得到对应的指数范围-128~128。
double的指数部分有11bit(2^11),由于是有符号型,所以得到对应的指数范围-1024~1024。
由于float的指数部分对应的指数范围为-128~128,所以取值范围为:
-2^128到2^128,约等于-3.4E38 — +3.4E38
精度(有效数字)主要看尾数位:
float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/IrDnDj0Z.html
其他回答
第1个回答 2009-04-11
就是2的N次方
原因计算机储存最小位bit,1bit就是1个“0”或者1个"1"。
你的题目有点错误,是-3.4E38---3.4E38,二进制数首位不表示数值,表示正负。
具体是2的好多次方不重要吧,需要的话用电脑上的计算器算换算下就是
相似回答
浮点型变量取值
范围怎么
得来
的?
答:
符号位的0为正,1为负;指数位共8位,可表示0~255或者-126~128;由于其取值
范围
由指数来定,剩余尾数23位最多可表示223个
有效数字
,用log计算,log10(2*223)=6.92,因此其有效数字为6~7位。浮点数表示法利用科学计数法来表达实数(real),当
计算的
表达式有精度要求时被使用。例如,计算平方根...
c++中的浮点类型数据的
有效数字
和
范围怎么
得
出来的?
答:
float类型标准时IEEE R32.24,double标准是IEEE R64.53;
所说的有效数字是也即是精度,是由其位数决定的;而范围则是有其指数位确定的
。具体去看其规范去,计算机组成原理有。(安装了vc/vs的)请看float.h里面关于他们的相关定义 C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\float.h...
...双精度浮点型数据的数值
范围
是多少?
怎么算出来的?
请大虾帮忙了!_百 ...
答:
关于精度的计算单精度8位阶码,1位符号,剩下23位尾数,
算出
2的负23次方,得到0.00000011920928955078125前面0有多少个,就表示能精确到那一位,所以精度为6提供七位
有效数字
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.00000000000000022204460492503130808472633361816所以精度为15,提供1...
浮点型数据的取值
范围如何算的?
答:
S)1 阶码(E)8 尾数(M)23。浮点型变量取值范围 是按 国际标准IEEE 754规定
出来的
。例如,浮点数总位数,哪个是数值符号位,版哪几权位是指数位,哪几位是基本数值位(尾数位),哪位是 阶码符号位,都有规定。有了规定,就可
算出范围
。编译器用头文件
float
.h的宏变量们, 可以知道取值范围。
大家正在搜
float的有效数字指什么
float范围和int范围哪个大
float double有效数字
float范围与有效位数
float有效数字
float几位有效数字
float型的有效位数
float有效位数
int几位有效数字
相关问题
float数据类型 的范围:约为6位有效数字怎么算的?
float的范围和有效数字怎么算出来的
float 有效数字问题
C中的float和double的有效数字和精度各是多少?
c语言中float型变量有效数字是七位,怎么看一个数的有效位...
c语言中的float的有效位数到底是多少?
C语言中float数据类型保留几位有效数字?
为什么float的取值范围那么大,有效数字才7位?