【问题标题】:How can we calculate 1/3 by using fixed-point arithmetic?我们如何使用定点算法计算 1/3?
【发布时间】:2017-09-07 19:56:33
【问题描述】:

我对定点算术特别是除法运算很感兴趣。 然而,许多网站解释了仅使用二次除法的方法,即位移。

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

1 是 0000 0000 0001 0000

3 是 0000 0000 0011 0000

【问题讨论】:

    标签: math fixed-point


    【解决方案1】:

    如果分母不是 2 的幂,那么结果很可能是无限级数。例如:

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

    您可以通过以下方式计算:

    • 只取一个 MSB 集的值:1000 0000 0000 0000
    • 除以分母
    • 右移整数位数减1。这相当于在定点表示中将初始值转换为1

    对于上面的例子:

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

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 2012-07-30
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多