Como posso converter um número da base 8 para a base 10?
Pergunta
Eu sei 75 (base8) = 61 (base10), mas não consigo encontrar facilmente a fórmula para isso. Como se converte da base 8 para a base 10?
Solução
Para converter qualquer base para a base 10, basta fazer o seguinte:
Para cada dígito na base diferente, multiplique isso pela base e dígito. Por exemplo:
75 (base 8) = 7*8^1 + 5*8^0 = 61
Funciona para qualquer base ... binária, hexadecimal, você o chama apenas e ele se converterá à base 10.
Outras dicas
0 * 85 + 0 * 84 + 0 * 83 + 0 * 82 + 7 * 81 + 5 * 80 = 61
A fórmula é 18 = 110 e 108 = 810. Todo o resto pode ser derivado disso.
Se você tiver uma sequência de 8 dígitos da base que deseja converter para um número base 10, processe -os da esquerda para a direita, mantendo um total que você inicializa em zero. Para cada dígito x, defina o total para 8*total+x. Após o processamento do último dígito, o total será o valor base dez da sequência base 8.
75 na base 8 = 5*8^0 + 7*8^1 = 5 + 56 = 61
Em geral, para converter o número A_1A_2A_3 ... a_N da base k para a base 10, use a fórmula:
a_n*k^0 + a_ (n-1)*k^1 + ... + a_1*k^(n-1).
Dado este é um site de programação:
int oct_to_dec = 075;
printf("%d",oct_to_dec);
137461 (base8) = 1 x 8^0 + 6 x 8^1 + 4 x 8^2 + 7 x 8^3 + 3 x 8^4 + 1 x 8^5