【问题标题】:Why division operation typically uses more resources in computer?为什么除法运算通常在计算机中使用更多资源?
【发布时间】:2011-02-24 23:55:45
【问题描述】:

我正在读一本 C 书。在算术表达式部分,他们说:

“除法通常使用更多资源。为了避免除法,我们乘以而不是除。例如,我们乘以 0.5 而不是除以 2.0。”

为什么 Division 通常会使用更多资源?谁能给我一个详细的解释,好吗?

非常感谢。

【问题讨论】:

  • 您应该研究的是不同处理器上的 ALU 如何实现除法。
  • 请记住,当前的 C 编译器通常会为您进行此类微优化
  • @nos - 通常仅启用优化;有些人在调试模式下测量这些东西并得到错误的想法。

标签: c math


【解决方案1】:

二进制乘法很简单,使用农夫算法 - 你基本上是移位,然后求和:http://en.wikipedia.org/wiki/Multiplication_algorithm#Peasant_or_binary_multiplication

二进制除法要困难得多,因为它是一系列减法(就像您在学校可能做过的长除法一样)。主要算法类称为“基数”,您可以在此处查看示例:http://www.bearcave.com/software/divide.htm

请记住 - 先衡量,然后优化。维护与问题域匹配的代码比已经优化的代码要容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2016-11-15
    • 2019-01-30
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    相关资源
    最近更新 更多