pow10 ( )【C语言库函数源代码】

来源:互联网 发布:linux vi编辑 编辑:程序博客网 时间:2024/05/21 07:09

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;

}