根据Alexandrescu的文章https://www.facebook.com/notes/facebook-engineering/three-optimization-tips-for-c/10151361643253920/
操作的速度层次为:
- 比较
- (u)int加,减,位,移位
- 浮点数加,子(单独的单位!)
- 索引数组访问(注意:缓存效果)
- (u)int32 mul
- FP mul
- FP部门,余下
- (u)int部门,其余
我不明白为什么比较快。
如何快速比较两个大数?什么是算法?
答案 0 :(得分:1)
这些比较快速,因为它们很容易。有问题的文章讨论的是数值比较。通常,它们分为两种类型:将一个整数与相同格式的另一个整数进行比较,以及比较两个浮点数。
在进行整数比较的情况下,所使用的整数格式将使得可以以非常简单的方式比较两个值,以特定的顺序查看特定的位(符号位,高位位,然后是低位位)。订单位)。
对于浮点数,绝大多数值将表示为in a normalised form,因此您可以按以下顺序进行比较:
这些比较在通用处理器中是如此普遍和重要,以至于它们将针对速度进行优化。