现在我在汇编里面要编写一个对数的子程序, 底为10, 也就是 lgX = ? 用汇编编写子程序,望能告之,分数不够尽管说哈。 求急!!!!
能用浮点指令吗?精确有几位小数?
不懂单片机汇编,写一段等价的c代码,自己翻译去吧。
#define LOG10E 0.4343 //log10(e)
double a[]=
{
3.162, 1.778, 1.349
};
double b[]=
{
0.50, 0.25,0.13
};
double my_log10(double x)
{
int i;
double r=0;
while (x>=10)
{
x/=10; r++;
}
for (i=0;i<3;i++)
{
if (x >=a[i])
{
x /=a[i]; r+=b[i];
}
}
x-=1.00;
r += ( 2* LOG10E * x/(2+x));
return r;
}