Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1408278
  • 博文数量: 143
  • 博客积分: 10005
  • 博客等级: 上将
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-23 17:25
个人简介

淡泊明志 宁静致远

文章分类

全部博文(143)

文章存档

2011年(2)

2009年(1)

2007年(22)

2006年(118)

我的朋友

分类: 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;

}

阅读(3013) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~