微控制器的铸造改进

Con*_*d C -1 c optimization avr bit-shift

有没有办法改进这行代码?我认为这种转换会减慢我的计划速度.我认为可以使用像位移这样的东西,我不确定.

(uint16_t)(0.8*(float)(Value)

编辑:我需要编程atmega8微控制器.我的老师说这行代码需要更多的处理能力,并且有一种更简单的方法可以通过位移来实现这一点.

And*_*nko 5

(我假设那Value也是一个int.)

0.8倍x与(4次x)除以5相同.将整数乘以2的幂可以通过位移非常快速地完成.如果您知道如何明确地执行此操作,但任何现代编译器都会自动优化int x = ...; x *= 8;为您的位移,因此您无需担心它.如果您有兴趣,可以广泛获得有关如何手动执行此操作的详细信息.

所以要尝试的一件事是(Value * 4) / 5.