【问题标题】:Logic behind the algorithm for converting base 10 to base X将基数 10 转换为基数 X 的算法背后的逻辑
【发布时间】:2018-01-21 19:28:20
【问题描述】:

以下算法背后的基本原理是什么:

从十进制转换为另一个基数的算法
设 n 为十进制数。
让 m 是我们要转换的数字,最初为空。我们将从右到左进行创作。
让 b 是我们要转换的数字的基数。
重复直到 n 变为 0
n 除以 b,结果为 d,余数为 r。
将余数 r 写为 b 的最左边的数字。
令 d 为 n 的新值。

【问题讨论】:

    标签: algorithm bit-manipulation base-conversion


    【解决方案1】:

    声明:余数r是结果的最后一位。

    实际上,将n 分成两部分:可被r 整除的部分和余数。 我们得到n = d * b + r,其中0 <= r < b

    在基础b 中,符号为n = c_k * b^k + ... + c_1 * b^1 + c_0 * b^0。 由于除c_0 * b^0 之外的所有内容都可以被b 整除,因此r = c_0 的相等性很简单。


    对于剩余的数字,重写

    n = c_k * b^k + ... + c_1 * b^1 + c_0 * b^0

    作为

    n = (c_k * b^{k-1} + ... + c_1 * b^0) * b + c_0 * b^0.

    另一方面,

    n = d * b + r.

    紧接着就是

    d = c_k * b^{k-1} + ... + c_1 * b^0.

    因此,要找到除最后一位以外的所有数字,我们必须解决相同的问题,但要使用 d < n 而不是 n。 通过n 的归纳,现在可以轻松得出总体正确性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      相关资源
      最近更新 更多