Conversor de Octal para Decimal

Converter

Digite um número octal usando os dígitos de 0 a 7 e este conversor retorna o seu valor decimal (base 10). Abaixo da ferramenta, a fórmula e uma análise posicional passo a passo mostram como cada dígito contribui (dígito × 8^posição). A caixa de entrada aceita apenas números octais inteiros, portanto, para um valor fracionário como 12.4 ou um valor negativo, converta os dígitos e acrescente você mesmo a vírgula ou o sinal de menos.

Como funciona a conversão de octal para decimal

  1. 1

    Insira o valor octal

    Apenas os dígitos de 0 a 7 são válidos. Um 8 ou um 9 é um octal inválido e a ferramenta irá sinalizá-lo.

  2. 2

    Multiplique por potências de 8

    O dígito mais à direita recebe 8^0, o próximo 8^1, depois 8^2, e assim por diante para a esquerda.

  3. 3

    Some os produtos

    Adicione a contribuição de cada dígito para obter o total decimal.

  4. 4

    Verifique com o binário

    Você pode conferir expandindo para binário (3 bits por dígito octal) e somando como base 2.

A fórmula

Para um número octal com dígitos dₙ dₙ₋₁ ... d₁ d₀:

decimal = dₙ · 8ⁿ + dₙ₋₁ · 8ⁿ⁻¹ + ... + d₁ · 8 + d₀

Exemplo prático: octal 345 para decimal

Dígito Posição 8^posição Contribuição
3 2 64 192
4 1 8 32
5 0 1 5
Total 229

Então 345 em octal = 229 em decimal.

Valores octais comuns e seus decimais

Octal Decimal Contexto
7 7 Maior octal de um dígito
10 8 Primeiro octal de dois dígitos
77 63 Maior octal de dois dígitos
100 64 Primeiro octal de três dígitos
755 493 chmod 755 (rwxr-xr-x)
777 511 Permissões totais para todos
1000 512 Primeiro octal de quatro dígitos

Onde a conversão de octal para decimal realmente importa

  • Lendo chmod. chmod 755 significa decimal 493, mas interpretá-lo como três tripletas rwx é mais útil do que o valor decimal em si.
  • Decodificando literais em C. 0755 em código C é 493, não 755. Literais inteiros que começam com 0 são octais em C, C++ e no JavaScript clássico.
  • Dumps de mainframes antigos. O PDP-11 e sistemas antigos semelhantes imprimiam a memória em octal.
  • Trabalho escolar. A conversão de base é um clássico da matemática discreta e de qualquer introdução à computação.

Dicas

  • Cuidado com a armadilha do 8 e do 9. Se a sua entrada tiver um 8 ou um 9, ela não é um octal válido: ou a fonte não era octal ou entrou um erro de digitação.
  • Frações e sinais são resolvidos à mão. A caixa aceita apenas os dígitos de 0 a 7. Para o octal 12.4, converta 12 para 10 e leia .4 como 4/8 = 0,5, chegando a 10,5. Para um valor negativo, converta os dígitos e recoloque o sinal de menos.
  • Confira com o binário. 345 em octal é 011 100 101 em binário. Somando esses bits como base 2 obtém-se 128 + 64 + 32 + 4 + 1 = 229, a mesma resposta.

Perguntas frequentes

Em C, C++, Python 2 e no JavaScript mais antigo, um literal inteiro que começa com 0 é interpretado como octal. 0755 é igual ao decimal 493. O JavaScript moderno (ES5 estrito), o Python 3 e o Rust exigem um prefixo explícito 0o para evitar essa armadilha.

A entrada aceita apenas os dígitos de 0 a 7, então remova o sinal, converta os dígitos e recoloque o menos: o octal -345 é o decimal -229. Para as representações em complemento de dois usadas na programação de baixo nível, a largura em bits altera a interpretação, portanto sempre a informe.

A conversão é feita em inteiros de 64 bits, então é exata até 9.223.372.036.854.775.807 (octal 777777777777777777777, 21 setes). Entradas maiores recorrem a ponto flutuante e os últimos dígitos passam a divergir. Observe que os números do JavaScript só são exatos até 2^53 - 1 (octal 377777777777777777, cerca de 9 quatrilhões), então use BigInt se você colar um resultado grande em JS.

O método de Horner: comece em 0 e, para cada dígito da esquerda para a direita, faça total = total * 8 + dígito. Isso evita calcular potências explícitas e é assim que os compiladores avaliam os literais internamente.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas