首先,浮点数是按照类似以2为底的科学计数法存储的。
这就意味着虽然浮点数存大数有误差,但可以精确求出2的次幂。
所以会有以下代码(部分):
double a=1; for(int i=1;i<=k;++i)a=a*2; printf("%.lf\n",a);
经测试结果和高精无异,但速度快了许多。
所以我想知道printf内部怎么实现输出浮点的(搜索浮点输出无果,本机的printf源码过于奇怪也看不懂)