打印

请教单片机公里和英里切换怎么写?

[复制链接]
804|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
verycard|  楼主 | 2017-3-7 19:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xyz549040622| | 2017-3-7 22:49 | 只看该作者
可以直接上浮点运算,或者进行算法优化,主要问题是,你用的什么单片机?

使用特权

评论回复
板凳
verycard|  楼主 | 2017-3-8 07:39 | 只看该作者
xyz549040622 发表于 2017-3-7 22:49
可以直接上浮点运算,或者进行算法优化,主要问题是,你用的什么单片机? ...

51

使用特权

评论回复
地板
徕泽| | 2017-3-8 08:58 | 只看该作者
试一试就知道了!

使用特权

评论回复
5
xyz549040622| | 2017-3-8 09:58 | 只看该作者

直接浮点运算也是可以的,但是速度慢,看你运算量大小了。慢了再进行优化

使用特权

评论回复
6
botming| | 2017-3-8 11:20 | 只看该作者
精度要求不高的话,也可以先化整数再做除,浮点计算也是棒棒的

使用特权

评论回复
7
coody| | 2017-3-8 22:46 | 只看该作者
51的话,用浮点乘法比浮点除法快得多。
例 0.3KM / 1.609344 = 0.3 * 0.6213711 =0.1864113 MI
    0.3MI * 1.609344 = 0.4828 km
不要那么高精度的话,并且数据不是很大,则可以使用整数运算,速度快得多,比如,系数放大10000倍,即4位小数:
例 0.3km * 6214 = 1864, 就是0.1864mi
    0.3mi * 16093 = 4828,就是0.4828 km

使用特权

评论回复
8
wkshengren| | 2017-3-9 09:33 | 只看该作者
建议直接用整数乘法,然后显示的时候再显示成小数
包括0.3km最好也用整数表示

使用特权

评论回复
9
lnulibin| | 2017-3-10 18:35 | 只看该作者
直接用浮点数乘法是可以的.个人估计完成一次乘法最多需要几十毫秒时间,也就够了.
如果不能忍受这几十毫秒.把数据处理成整形数据,利用移位方法是比较快的.

X /1.6=(X*4+X)/8

X*4即将数据左移2位.
X/8即将数据右移3位.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

17

帖子

1

粉丝