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

被告知模数运算符“%”和除法运算符“/”在嵌入式C中效率很低.

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

a = b % c;

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

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

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

谢谢,
基尔提

解决方法

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

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

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...