c/c++中double型的最大值和最小值

double 8字节 类型的最大值=1.79769e+308(1.79769e+308怎么计算的)

我理解的是
double=8字节=1字节
1字节=8bit
8字节*8bit=64
2的64次方=18446744073709551616
所以我理解的是:double 8字节 类型的最大值=18446744073709551616
可为什么程序执行的时候输出:1.79769e+308

DBL_MAX:double型的最大值

DBL_MIN:double型的最小值

FLT_MAX:float型的最大值

FLT_MIN:float型的最小值

1、负值取值范围为-1.79769313486231570E+308到-4.94065645841246544E-324;

2、正值取值范围为4.94065645841246544E-324到1.79769313486231570E+308。

扩展资料

c++中使用sizeof()函数来获取各种数据类型的大小

type:size

bool:所占字节数:1最大值:1最小值:0

char:所占字节数:1最大值:最小值:?

signedchar:所占字节数:1最大值:最小值:?

unsignedchar:所占字节数:1最大值:?最小值:

wchar_t:所占字节数:4最大值:2147483647最小值:-2147483648

short:所占字节数:2最大值:32767最小值:-32768

int:所占字节数:4最大值:2147483647最小值:-2147483648

unsigned:所占字节数:4最大值:4294967295最小值:0

long:所占字节数:8最大值:9223372036854775807最小值:-9223372036854775808

unsignedlong:所占字节数:8最大值:18446744073709551615最小值:0

double:所占字节数:8最大值:1.79769e+308最小值:2.22507e-308

longdouble:所占字节数:16最大值:1.18973e+4932最小值:3.3621e-4932

float:所占字节数:4最大值:3.40282e+38最小值:1.17549e-38

size_t:所占字节数:8最大值:18446744073709551615最小值:0

string:所占字节数:24

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-24
首先浮点数都是有符号数的,其次浮点数存储并非和整数存储一样。

浮点数的最值在,float.h中定义。
#define DBL_MAX 1.7976931348623158e+308 /* max value */
#define DBL_MIN 2.2250738585072014e-308 /* min positive value */追问

谢谢 还有一点遗憾 如果按有符号计算
18446744073709551616 一半是按负数 一半是按正数
假设现在这个 1.7976931348623158e+308 最大正数是怎么计算的

追答

计算机里浮点数按照IEEE754标准存储,分为移码和阶码。 这个讲清楚就很复杂了。 如果你想了解可以去了解IEEE754标准。

本回答被提问者采纳
第2个回答  2013-04-14
double 64位 8字节 表述范围:+/-1.8*10^308 ||||||| long double 长双精度80 位 10字节 表述范围:+/-1.2*10^4932
相似回答