我正在读一本C书。在算术表达式部分,他们说:
“分部通常使用更多的资源。为了避免分裂,我们乘以而不是分割。例如,我们乘以0.5而不是除以2.0。”
为什么分部通常会使用更多资源?请问有人能给我详细解释吗?
非常感谢。
答案 0 :(得分:6)
二进制乘法使用农民算法很简单 - 你基本上移位,然后求和:http://en.wikipedia.org/wiki/Multiplication_algorithm#Peasant_or_binary_multiplication
二进制分区要困难得多,因为这是一系列减法(比如你可能在学校做过的长分)。主算法类称为'radix',您可以在此处看到一个示例:http://www.bearcave.com/software/divide.htm
请记住 - 首先测量,然后优化。与已经优化的代码相比,维护与问题域匹配的代码要容易得多。