Math 如何使用定点算法计算1/3?

Math 如何使用定点算法计算1/3?,math,fixed-point,Math,Fixed Point,我对定点算术特别是除法运算感兴趣。 然而,许多网站解释的方法只是使用两个除法的幂,即位移位 如果分母不是二的幂呢? 例如,我们如何计算1/3的无符号16位算术? 假设右4位是小数部分 1是0000 0001 0000 如果分母不是二的幂,那么结果很可能是一个无穷级数。例如: 由于您只有4个小数位,因此结果将是: 您可以通过以下公式进行计算: 获取仅设置了MSB的值:1000 0000 除以分母 按整数位数减1进行右移。这相当于在定点表示中将初始值转换为1 对于上述示例: [1000 0

我对定点算术特别是除法运算感兴趣。 然而,许多网站解释的方法只是使用两个除法的幂,即位移位

如果分母不是二的幂呢? 例如,我们如何计算1/3的无符号16位算术? 假设右4位是小数部分

1是0000 0001 0000


如果分母不是二的幂,那么结果很可能是一个无穷级数。例如:

由于您只有4个小数位,因此结果将是:

您可以通过以下公式进行计算:

  • 获取仅设置了MSB的值:
    1000 0000
  • 除以分母
  • 按整数位数减1进行右移。这相当于在定点表示中将初始值转换为1
对于上述示例:

  • [1000 0000 0000]/3=0010 1010 1010 1010
  • [00101010101010]>>(12-1)=0000 0101