本帖最后由 tianxj01 于 2018-10-24 17:51 编辑
可以用浮点运算,这个和用什么芯片没什么关系,有关系的是某些芯片支持多位浮点运算(硬件),而大多数通用8位机是不可能支持硬件浮点运算的。
用8位机做浮点运算,编译器会调用浮点运算子程序,根据单片机运算速度强弱,运算时间差异非常大,反正8位单片机做浮点运算速度都是比较慢的就是了。
因此,一般来说,我们尽量避免让程序执行浮点运算,尤其是那些对速度有要求的过程。对于期望的精度,我们可以有很多办法,比如尽量采用定点数,除法因子放置最后等等。
比如,我们要获取100/99的除非结果,很明显,如果用整数运算,结果只能是1,这里我们可以把1000放大到结果需要的精度,比如结果是1%精度,那么我们只需要把100*128,然后做除法,然后,结果的后面7位,就是小数点部分,而8位以后就是整数部分。
100*128=12800=3200H/63H=81H=10000001,切位后,整数1,小数点后面*100/128=0.01(四舍五入)。
|