Con*_*d C -1 c optimization avr bit-shift
有没有办法改进这行代码?我认为这种转换会减慢我的计划速度.我认为可以使用像位移这样的东西,我不确定.
(uint16_t)(0.8*(float)(Value) ?
(uint16_t)(0.8*(float)(Value)
编辑:我需要编程atmega8微控制器.我的老师说这行代码需要更多的处理能力,并且有一种更简单的方法可以通过位移来实现这一点.
And*_*nko 5
(我假设那Value也是一个int.)
Value
int
0.8倍x与(4次x)除以5相同.将整数乘以2的幂可以通过位移非常快速地完成.如果您知道如何明确地执行此操作,但任何现代编译器都会自动优化int x = ...; x *= 8;为您的位移,因此您无需担心它.如果您有兴趣,可以广泛获得有关如何手动执行此操作的详细信息.
x
int x = ...; x *= 8;
所以要尝试的一件事是(Value * 4) / 5.
(Value * 4) / 5
归档时间:
12 年 前
查看次数:
97 次
最近记录: