在C中使用%操作符和/运算符的替代方法

前端之家收集整理的这篇文章主要介绍了在C中使用%操作符和/运算符的替代方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
被告知模数运算符“%”和除法运算符“/”在嵌入式C中效率很低.

我如何替代地实现以下表达式:

a = b % c;

我明白这可以使用以下逻辑来实现:

a = b - c;
while (a >= c) {
  a = a - c;
}

但我的问题是,这个代码涉及while循环有效性足够,与%运算符相比?

谢谢,
基尔提

解决方法

没有什么比%运算符更有效率.如果有更好的方法来做,那么任何合理的编译器都会自动将其转换.当你被告知%和/低效率的时候,这只是因为这些操作很困难 – 如果你需要执行模数,那么这样做.

有更好的方法可能会有特殊情况 – 例如,mod一个二进制数可以写成二进制或 – 但是这些可能是您的编译器优化的.

猜你在找的C&C++相关文章