淡泊明志 宁静致远
分类: C/C++
2006-12-05 16:47:55
【C语言库函数源代码】
【本程序在Dev C++ 4.9.9.2 下编译通过】
double my_pow10(double x)
{
register double ret, value;
__asm__(
"fldl2t;\n\t"
"fmul
%%st(1);\n\t"
"fst
%%st(1);\n\t"
"frndint;\n\t"
"fxch;\n\t"
"fsub
%%st(1);\n\t"
"f2xm1 ;\n\t"
: "=t" (ret), "=u"
(value)
: "0" (x)
);
ret += 1.0;
__asm__(
"fscale"
: "=t" (ret)
: "0" (ret), "u"
(value)
);
return ret;
}//求10的x次幂(类似于求解exp的x次幂的算法)
int main()
{
printf("%f\n",my_pow10(0.0));
printf("%f\n",my_pow10(4));
printf("%f\n",my_pow10(20));
system("pause");
return 0;
}