gpt4 book ai didi

c++ - 为什么比较运算符这么快?

转载 作者:行者123 更新时间:2023-11-30 21:36:25 26 4
gpt4 key购买 nike

根据 Alexandrescu 文章 https://www.facebook.com/notes/facebook-engineering/three-optimization-tips-for-c/10151361643253920/

The speed hierarchy of operations is:

  1. comparisons
  2. (u)int add, subtract, bitops, shift
  3. floating point add, sub (separate unit!)
  4. indexed array access (caveat: cache effects)
  5. (u)int32 mul
  6. FP mul
  7. FP division, remainder
  8. (u)int division,remainder

我不明白为什么比较这么快。

如何快速比较两个大数?算法是什么?

最佳答案

这些比较很快,因为它们很简单。该文章讨论的是数值的比较。一般来说,它们分为两种类型:将一个整数与另一个相同格式的整数进行比较,以及比较两个 float 。

在整数比较的情况下,使用的整数格式将使得可以以非常直接的方式比较两个值,以特定顺序查看特定位(符号位,高位位,然后低位)顺序位)。

对于 float ,绝大多数值将表示为 in a normalised form ,所以你可以按顺序进行比较:

  • 对应的符号位,如果相等
  • 相应的指数,如果它们相等
  • 相应的尾数(从高位到低位,按位)。

这些类型的比较在通用处理器中非常常见且非常重要,因此将针对速度进行优化。

关于c++ - 为什么比较运算符这么快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53133299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com