标签: math fixed-point
我对定点运算特别是除法运算感兴趣。 然而,许多网站只使用二次幂除法来解释这种方法,即一次移位。
如果分母不是2的幂,怎么办? 我们如何计算1/3 in例如无符号16位算术? 假设右下4位是小数部分。
1是0000 0000 0001 0000
3是0000 0000 0011 0000
答案 0 :(得分:2)
如果分母不是2的幂,那么结果很可能是无限系列。例如:
由于您只有4个小数位,因此结果为:
您可以通过以下方式计算:
1000 0000 0000 0000
对于上面的示例:
[1000 0000 0000 0000] / 3 = 0010 1010 1010 1010
[0010 1010 1010 1010] >> (12 - 1) = 0000 0000 0000 0101