【发布时间】:2011-01-23 01:52:29
【问题描述】:
My processor,一个没有 FPU 和整数数学的小型 16 位微控制器,只有 16/16 除法和 32/16 除法,都需要 18 个周期。目前我正在使用一个非常慢的软件程序(约 7,500 个周期)来进行 64/32 除法。有没有办法使用这些除法引擎来计算 64/32 除法?类似于我已经使用 16x16 乘法器和加法器来计算 32x32 乘法?我正在使用 C,但可以使用任何关于如何完成的一般解释......我希望目标是
【问题讨论】:
-
那是什么语言?在大多数(如果不是全部)语言中,双/单与 FPU 一起工作,而且速度非常快......除非我在这里遗漏了一些东西
-
我认为他说的是整数除法,而不是浮点除法
-
你试过用谷歌搜索计算机除法算法吗?有很多。
-
64/32 除法的商并不总是适合 32 位。
-
@Thomas O:你确定结果是 64 位的吗?刚刚阅读了reference manual,它说结果中大于 16 位的 32/16 div 会导致意外结果。我假设使用该指令的 64/32 div 的任何简单实现都会遇到类似的问题,结果 >32 位。
标签: algorithm optimization division