我阅读了一些关于在小型Arduino微控制器上使用浮点数运算不好的文章。因此,在尝试减少浮点数使用量时,我发现了一件奇怪的事情。
// Baseline
float brightness = 0.05;
int result = someInt * brightness;
// Takes about twice as long
int brightness = 20;
int result = someInt / brightness;
两者的目标都是将整数降低到原始值的二十分之一,但在进行数学优化时,我不确定为什么浮点数速度更快。