首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提升到电源是如何工作的?是否值得使用pow(x,2)?

提升到电源是如何工作的?是否值得使用pow(x,2)?
EN

Stack Overflow用户
提问于 2013-05-24 04:41:24
回答 8查看 19.4K关注 0票数 8

在c++中做乘法比求2的幂更有效吗?

我正在尝试做最后的详细优化。编译器是否会将x*x等同于pow(x,2)?如果我没记错的话,出于某种原因,乘法更好,但也许在c++11中这并不重要。

谢谢

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-05-24 04:44:01

如果您将乘法与pow()标准库函数进行比较,那么是的,乘法绝对更快。

票数 20
EN

Stack Overflow用户

发布于 2013-05-24 04:54:33

一般来说,你不应该担心像那样的微微优化,除非你有证据证明有一个热点(也就是,除非你已经在现实场景下分析了你的代码,并且已经识别了特定的代码块。还请记住,您的巧妙技巧实际上可能会导致新处理器中的性能回归,而您的假设将不再成立。

算法的改变是让你的计算得到最大回报的地方。专注于这一点。

修修补补乘法和做聪明的比特黑客...嗯,不是很棒*因为当前一代的优化编译器在他们的工作中确实是相当优秀的。这并不是说他们不能被击败。他们可以,但不容易,而且可能只有像Agner Fog这样的少数人。

*当然,也有例外。

票数 6
EN

Stack Overflow用户

发布于 2013-05-24 04:43:54

当涉及到性能时,请始终进行测量以支持您的假设。永远不要相信理论,除非你有一个基准来证明这个理论是正确的。

此外,请记住,在C++中,x ^ 2不会产生2的平方:

代码语言:javascript
复制
#include <iostream>

int main()
{
    int x = 4;
    std::cout << (x ^ 2); // Prints 6
}

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16723523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档