Conversor de Decimal para Octal

Decimal

Octal é o sistema de numeração base-8 que você encontra com mais frequência nas permissões de arquivos Unix (chmod 755) e em linguagens de programação mais antigas. Este conversor transforma qualquer número inteiro decimal em sua forma octal. O guia abaixo explica o método de divisão por 8, para você conferir o resultado na mão.

Como converter decimal para octal

  1. 1

    Digite um inteiro decimal

    Digite qualquer número inteiro, por exemplo 255 ou 4096.

  2. 2

    Leia o resultado octal

    Os dígitos octais aparecem na hora, sem prefixo, prontos para copiar.

  3. 3

    Aprenda o método

    O guia abaixo explica o processo de divisão por 8 e a pilha de restos que se torna os dígitos octais, para você conferir o resultado na mão.

  4. 4

    A regra dos negativos

    Os números negativos são convertidos por meio do complemento de dois de 64 bits, a mesma saída do formato `%o` do C.

Como a divisão por 8 constrói os dígitos octais

Para converter decimal para octal, continue dividindo por 8 e colete os restos de baixo para cima:

83 / 8 = 10 resto 3
10 / 8 = 1  resto 2
 1 / 8 = 0  resto 1
Leia de baixo para cima: 123

Assim, 83 decimal é igual a 123 octal. Cada dígito octal cobre três bits, razão pela qual o octal aparece na notação de permissões Unix, onde três bits codificam leitura, escrita e execução para cada classe de usuário.

Valores de referência

Decimal Octal Contexto
7 7 Maior dígito octal único
8 10 Primeiro valor octal de dois dígitos
64 100 Primeiro valor octal de três dígitos
511 777 Valor máximo de 9 bits, permissões Unix completas
4,096 10000 Primeiro valor octal de cinco dígitos

Guia rápido de permissões Unix

Os números chmod familiares são octais: cada dígito é uma máscara de três bits para proprietário, grupo e todos os outros.

  • 4 equivale a leitura
  • 2 equivale a escrita
  • 1 equivale a execução

Assim, 755 significa que o proprietário tem 7 (rwx), grupo e mundo têm 5 (r-x). 644 significa proprietário rw-, todos os outros r--.

Atenção: o zero à frente

Em C, um zero à frente significa octal: int x = 010; atribui 8, não 10. JavaScript descontinuou essa convenção porque confundiu a todos. Python a eliminou na versão 3.0. Se seu código é moderno, prefira o prefixo 0o para evitar erros silenciosos de diferença de oito.

Perguntas frequentes

Porque a base-8 tem exatamente oito dígitos válidos por posição. O dígito 8 não pode existir em octal assim como 10 não pode existir em decimal; se um resto atinge 8, ele se torna 10 na próxima coluna.

Raramente. Alguns sistemas embarcados e formatos de arquivo legados ainda dependem do octal, mas para a maioria dos trabalhos modernos, o hexadecimal o substituiu porque um dígito hex mapeia claramente para quatro bits (metade de um byte) em vez de três.

Não. Este conversor trabalha apenas com números inteiros. Se você digitar um valor com ponto decimal, apenas a parte inteira é convertida: 12.9 dá o mesmo resultado que 12. A vírgula decimal não é reconhecida.

A conversão é calculada no servidor, então o número que você digita é enviado como parte da interação com a página e pode viajar no link ao avançar pelas etapas da ferramenta. Ele não é armazenado nem compartilhado com terceiros.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas