问题及分析:
测试代码:
#include <stdio.h>
int main()
{
double a;
a=0x1.91eb86p+1;
printf("%f\n",a);
double b;
b=0x4.1p2;
printf("%f\n",b);
return 0;
/*
例如这个b=0x4.1p2;
0x表示是15进制,4.1是16进制的小数,4为4*16^0=4, .1为1*16^-1=0.0625(1乘16的负一次幂)。
然后相加后的整体为 4+0.0625=4.0625。后面的p跟那个e同理,只不过e表示10,而p为2,p2就是2^2=4(2的2次幂);
4.0625*4=16.25
*/
}
参考:
C99用16进制表示浮点型常量https://blog.csdn.net/weixin_52438875/article/details/128317633用十六进制表示浮点型常量https://dghcs.blog.csdn.net/article/details/103967222?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-103967222-blog-128317633.235%5Ev39%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-103967222-blog-128317633.235%5Ev39%5Epc_relevant_default_base&utm_relevant_index=1
本人截图中所涉及的图片,若需要看,请配合长截图查看: