
在51单片机的汇编环境里能处理浮点数吗?
3个回答
展开全部
51处理浮点数是非常慢的,建议轻易不要用,非要用小数的话,那可以用整数替代啊,可以标记为小数就行了。c可以做到汇编也可以。你可以到网上查一下有没有相应的例子。
展开全部
你不觉得汇编语言处理运算太麻烦了吗,为何不用C,你必须接收这一事实,汇编语言己经退出了历史。非得用汇编的话,你就找个C的,然后用编译器将它翻译成汇编。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void
table(long
degree)
这个
函数定义写错了,该函数的参数类型为长整型,此时,如果传入的参数实际值为浮点数,则浮点数会先被强制转换成长整型(隐性转换,默认的做法是去掉小数点后的数),得出的结果才传入形参(degree)。
可以把该函数改成如下形式:
//生成对应的数组,以用于led显示
void
table(float
degree)
{uchar
i;
ulong
num;
if(degree>=0){led[7]=0;degree=degree*100;num=degree;}
if(degree<0){led[7]=10;degree=degree*(-100);num=degree;}
for(i=0;i<prec;i++)
{led[i]=num%10;
num=num/10;
}
}
table(long
degree)
这个
函数定义写错了,该函数的参数类型为长整型,此时,如果传入的参数实际值为浮点数,则浮点数会先被强制转换成长整型(隐性转换,默认的做法是去掉小数点后的数),得出的结果才传入形参(degree)。
可以把该函数改成如下形式:
//生成对应的数组,以用于led显示
void
table(float
degree)
{uchar
i;
ulong
num;
if(degree>=0){led[7]=0;degree=degree*100;num=degree;}
if(degree<0){led[7]=10;degree=degree*(-100);num=degree;}
for(i=0;i<prec;i++)
{led[i]=num%10;
num=num/10;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询