【发布时间】:2011-12-29 06:02:47
【问题描述】:
据说模运算符“%”和除运算符“/”在嵌入式C++中效率很低。
我怎样才能实现以下表达式:
a = b % c;
我知道这可以使用以下逻辑来实现:
a = b - c;
while (a >= c) {
a = a - c;
}
但我的问题是,与 % 运算符相比,这段涉及 while 循环的代码是否足够高效?
谢谢, 基尔提
【问题讨论】:
-
"与 % 运算符相比,这段涉及 while 循环的代码是否足够高效?"您告诉我们,您是使用该程序的人。是不是感觉很慢?你能注意到吗?您是否已分析并发现这很慢?
-
这取决于大小。如果
b = 1000000000和c = 3。这需要一段时间...... -
你能告诉目标CPU和编译器吗?没有它,就不可能比较任何方法。
-
您可能会尝试分析不同的版本以查看更适合您的环境的版本。你试过吗?我认为在大多数情况下,更多的百分比是相当有效的。
-
既然你有两个版本的实现这个,为什么不只是在你的环境中分析并自己获得结果,这些将比任何答案更具决定性,这将做出明智的猜测或近似关于你的环境。
标签: c++ modulo processing-efficiency