51单片机通常如何输入浮点数?

因为要输入大概7位的浮点数,用独立键盘加减的话太慢了,所以用矩阵键盘按键输入。我现在的想法是用矩阵输入数字,放到字符数组data[7]中,再用函数number=double atof(data);我初学51单片机,不知道大家一般怎么做的,这样写可以吗?程序效率如何,通常做项目都是用什么方法?

单片机处理浮点数效率不高,一般是浮点数乘以10的n次方变成整数进行计算等处理,在输出的时候再次处理小数点。比如,你输入的是1234.567,1234保存到2个unsigned char型变量里面,567保存到2个unsigned char型变量里面,如果是有符号浮点数,可以把符号单独保存到一个unsigned char里面,计算的时候所有的数都乘以1000,输出的时候单独输出整数部分和小数部分。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-06
一般是浮点数乘以10的n次方变成整数进行计算等处理,在输出的时候再次处理小数点。比如,输入的是1234.567,1234保存到2个unsigned char型变量里面,567保存到2个unsigned char型变量里面,如果是有符号浮点数,可以把符号单独保存到一个unsigned char里面,计算的时候所有的数都乘以1000,输出的时候单独输出整数部分和小数部分。

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。
第2个回答  2013-10-25
你可以直接输入到double里面,double input = 0;当没输入小数点之前时input = input * 10 + Keynumber,输入小数点后的要记录小数点后输入几位了char count;input = input + Keynumber/10^count,10的count次方要写成函数。注意记录删除键和上一次的输入值
第3个回答  2013-10-25
51单片机通常如何输入浮点数?

51单片机,通常不用输入浮点数。
相似回答