【问题标题】:Converting base-8 to base-32 without using any other base?在不使用任何其他基础的情况下将 base-8 转换为 base-32?
【发布时间】:2015-04-09 20:44:02
【问题描述】:

我有 base-8 数字 64276。我如何将这个数字直接转换为 base-32 而无需将其转换为二进制、十进制或任何其他基数。

编辑:我正在尝试用铅笔和纸解决问题

【问题讨论】:

  • 有困难。 5 个以 8 为基数的数字清晰地映射到 3 个以 32 为基数的数字,因此您需要分别转换每个 5 位数字块。最简单的方法是先转换为int
  • 这将构成将其转换为另一个基础 Oliver :)
  • 在计算机中它只是二进制的不同表达方式:在javascript中064276.toString(32)会处理它。如果你想在纸上做,你需要使用经典的基础转换。
  • 但是 number.toString 在内部将整数转换为二进制,这不是不允许的吗?或者,如果允许这样的开箱即用答案,那么“你”可以通过把它给我来转换数字,我会用我的计算器来转换它,而“你”不会把它转换成任何其他基地! ;-)
  • 我应该澄清一下,我用铅笔和纸尝试这个......

标签: binary numbers base


【解决方案1】:

这听起来像是一个有趣的家庭作业挑战,所以这里有一个提示——如何将 5,000 位以 64 为基数的数字转换为以 32 为基数的数字?

【讨论】:

  • 你会以某种方式使用基数 2^5 并以某种方式对它们进行分组,以便你可以分解出一些东西......?
  • 您可以将八进制数字对分组,发出一个 base-32 数字,并跟踪乘法偏移以用于下一对八进制数字
  • 您将如何进行转换?你如何表示一个 base-32 数字?
  • base 16 用符号 [0-9a-f] 表示,并且该方法以明显的方式扩展到使用符号 [0-9a-v] 的 base 32。转换是在八进制数字对上进行的,从最低有效到最高有效,跟踪进位和位偏移。当位偏移量达到 5 时,发出两个 base-32 数字并将偏移量重置为 0。
  • @Andras 你能用一个例子来说明这是如何完成的吗?通过将八进制转换为二进制,然后从二进制转换为 32,我能够得到 Q5U(以 32 为底)的答案。但是,我想知道如何直接从八进制转换为 base-32。
猜你喜欢
  • 2012-07-08
  • 1970-01-01
  • 2019-11-10
  • 2012-03-22
  • 2014-11-22
  • 2012-05-20
  • 2016-05-01
  • 1970-01-01
  • 2021-05-20
相关资源
最近更新 更多