51单片机设计计算器 乘法函数 算法问题

来自:    更新日期:早些时候
51单片机编程计算器问题~

调试 跟踪看看.

一种方法,所有数据均按正整数计算,正负号单独处理,如两个数相减,先判断是被减数大,还是减数大,如果减数大,则将减数和被减数对调後相减,结果前面加负号,乘除法,则异号相乘除,结果为负
另一种方法,直接利用C语言的库函数,数据类型按浮点型进行计算,结果是有正负和小数的,然後将其转化为字符串进行显示即可

直接浮点运算是可以的,但是时间长,也不容易保证进度。最好是将其转换为整数进行运算,然后加小数点。

比如1.1×1.1,看做是11×11=121,然后根据被乘数和乘数小树的位数之和(2)来确定小数点的位置:那就是两位小数,所以就变成1.21,计算完成。

这个方法我知道,但这样计算极端情况下 (8+5)=13位数乘以13位数得到一个27位数,这样在显示取位放入数组时将相当繁琐(不是指代码繁琐) 计算时间太长,不到最后我还是不打算用这种方法。。
那就只能考虑直接用C语言的浮点来完成了。比如:
float a,b,c;
char str[20];
a=12.3
b=405.766;
c=a*b;
sprintf(str,"%f",c);
这样字符串str中就是c的数值的字符串。


51单片机设计计算器 乘法函数 算法问题视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网