0x是16进制前缀;
1.f40000是一个16进制浮点数常量,表示尾数部分;
p是指数符号,表示后面的数字是用来指定指数部分,之所以不用常用的e(E),是因为e已用于16进制中,p大写小写都可;
14是表示是2的14次方,千万注意是2不是10。
整个就是表示一个16进制浮点数常量,转换成10进制后就是32000.000000。
下面有一个示例:
#include
int main()
{
double d=0x1p10;
double d1=0x1.f40000p14;
double d2=0X1.F40000P14;
printf("%lf\n",d);
printf("%lf\n",d1);
printf("%lf\n",d2);
return 0;
}