我需要一种方法来计算不动点B在不动点a中包含的次数。类似于整数除法,但在非整数操作数上。我需要为这个操作设计一个硬件块。我的第一个猜测是,当我到达小数部分时,使用除法作为移位、减法和停止,但也许你知道更好的方法来找到它。
如果我理解正确,您需要分数除法的整数部分,即
C = floor(A / B)
现在,小数除法和整数除法没有什么不同,除了调整小数点之外,如果你表示A = a * 2^-n
和B = b * 2^-m
,你就会得到
C = floor(A / B) = floor((a / b) * 2^(-n-m))
因此,您可以对不变的整数使用除法算法(本质上是移位和减法),并忽略(向下取整)最低有效的n+m
位,或者更有效地在达到小数点后停止迭代。