在51单片机的汇编环境里能处理浮点数吗?

51单片机处理浮点数非得用C语言吗?汇编语言行不行?如果行,该怎么处理呢?谢谢^_^... 51单片机处理浮点数非得用C语言吗?汇编语言行不行?如果行,该怎么处理呢?谢谢^_^ 展开
 我来答
卷里求175
2007-10-05 · TA获得超过141个赞
知道答主
回答量:89
采纳率:0%
帮助的人:69.7万
展开全部
51处理浮点数是非常慢的,建议轻易不要用,非要用小数的话,那可以用整数替代啊,可以标记为小数就行了。c可以做到汇编也可以。你可以到网上查一下有没有相应的例子。
啦饿就cd
2007-10-08 · TA获得超过670个赞
知道小有建树答主
回答量:467
采纳率:0%
帮助的人:503万
展开全部
你不觉得汇编语言处理运算太麻烦了吗,为何不用C,你必须接收这一事实,汇编语言己经退出了历史。非得用汇编的话,你就找个C的,然后用编译器将它翻译成汇编。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者LaQ5RWuSbV
2020-02-17 · TA获得超过3780个赞
知道大有可为答主
回答量:3127
采纳率:30%
帮助的人:180万
展开全部
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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式