微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

a = b % c;

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

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

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

谢谢,
基尔提

解决方法

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

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

原文地址:https://www.jb51.cc/c/112276.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐