4

我曾经应该编写一个简短的汇编代码来用不是 2 的幂的数字进行除法。我的解决方案是以周期为单位减去除法器,而周期数是实际结果。有什么更快的吗?解决这个问题的通常方法是什么?

4

2 回答 2

2

维基百科上提到并详细说明了一堆算法。

于 2010-02-08T11:11:13.060 回答
2

重复减法是一种危险的低效除法方法。在最坏的情况下,N 位除法可以进行O(2**N)减法!

@Johannes 答案有一个链接,可以为您提供比这更好的算法。

如果我被要求在汇编程序中实现除法,我可能会广泛搜索现有的数字例程库。这是一种需要大量专业知识才能提出接近最佳代码的问题。

编辑:回应OP的评论:

只是我现在正在用 C++ 编写一些程序,我正在决定是使用除法来解决一个问题还是弥补其他东西以使其更快。

我建议您只使用除法,并将其留给 C++ 编译器来生成最有效的指令序列,以实现您特定目标平台所需的结果。

于 2010-02-08T11:28:58.627 回答