算法将未知基数中的数字转换为等效的基数10

jav*_*eek -6 algorithm base-conversion

可能重复:
数字系统之间转换的高效算法

给定一个整数,编写一个程序,将给定的数字转换为数字(基数为10).提示 - 给定的数字可以在任何基础上,但基数是未知的.

Mic*_*zek 11

那不可能做到; 在不知道源基础的情况下,数字是不明确的.10在基数n翻译为n基数10; 有无限的可能性


Fly*_*179 8

我假设'未知'你的意思是算法需要能够处理任何基数?否则,这根本不可能.

所以你基本上要求函数转换(数字,基数)= base10Number?

count = 0
total = 0
for each digit in number, from least significant to most significant
  total = total + digit * base^count
  count = count + 1
Run Code Online (Sandbox Code Playgroud)

例如转换(355,8)

  • 第一次循环:总数= 0 + 5*8 ^ 0 = 5
  • 第二循环:总= 5 + 5*8 ^ 1 = 45
  • 第三循环:总= 45 + 3*8 ^ 2 = 237

结果= 237