Conversor de Bases Numéricas

Converta números, analise representações, decodifique valores de ponto flutuante e explore sistemas de bases numéricas.

Os resultados são calculados automaticamente enquanto você informa os dados.

Valor convertido -
Binário-
Octal-
Decimal-
Hexadecimal-
Visualização dos bits-
IEEE-754 Float32-
IEEE-754 Float64-
Etapas da conversão
Fórmula
-

Compatível com bases de 2 a 36, números inteiros grandes, frações, codificação de texto, interpretação com sinal, decodificação IEEE-754 e detalhamento didático da conversão.

▼ Veja explicações e dicas abaixo ▼

O que é conversão de bases numéricas?

A conversão de bases numéricas é o processo de reescrever o mesmo valor em um sistema de numeração posicional diferente. O valor não muda; mudam apenas os símbolos e os valores posicionais usados para escrevê-lo.

Por exemplo, o número decimal \(255_{10}\), o número binário \(11111111_2\) e o número hexadecimal \(\text{FF}_{16}\) representam a mesma quantidade. Eles parecem diferentes porque cada base agrupa os valores por uma potência diferente:

  • Base 2 agrupa por potências de \(2\) e usa os algarismos \(0\) e \(1\).
  • Base 8 agrupa por potências de \(8\) e usa os algarismos \(0\) a \(7\).
  • Base 10 agrupa por potências de \(10\) e usa os algarismos \(0\) a \(9\).
  • Base 16 agrupa por potências de \(16\) e usa \(0\) a \(9\) e, depois, \(A\) a \(F\).

A conversão de bases é útil porque diferentes áreas preferem diferentes representações. As pessoas geralmente leem números decimais. Os computadores armazenam e processam dados como bits. Programadores costumam usar hexadecimal porque é uma forma compacta de escrever padrões binários.


Por que a conversão de bases numéricas é importante

A conversão de bases ajuda a conectar números legíveis por pessoas às representações em nível de máquina. Um estudante pode usá-la para entender o valor posicional, um programador pode usá-la para examinar a memória ou máscaras de bits, e um educador pode usá-la para mostrar por que a mesma quantidade pode ser escrita de várias formas válidas.

Ela também ajuda a evitar erros práticos. Se um valor deveria ser binário, um algarismo como \(2\) é impossível. Se um valor é hexadecimal, \(A\) significa dez, não a letra A em um texto comum. Se um valor é mostrado como bytes de ponto flutuante IEEE-754, ele não é a mesma coisa que um número inteiro hexadecimal comum.


Termos importantes

Termo Significado
Base ou raiz A quantidade de valores de algarismos distintos usados por um sistema posicional. A base \(b\) usa valores de algarismos de \(0\) a \(b-1\).
Valor do algarismo O valor numérico de um símbolo. Em hexadecimal, \(A=10\), \(B=11\), \(C=12\), \(D=13\), \(E=14\), e \(F=15\).
Valor posicional O valor contribuído por um algarismo devido à sua posição. Cada passo para a esquerda multiplica pela base; cada passo para a direita da vírgula de base divide pela base.
Vírgula de base O ponto que separa as posições da parte inteira das posições fracionárias. No sistema decimal, ele costuma ser chamado de vírgula decimal.
Bit Um algarismo binário, \(0\) ou \(1\).
Nibl Um grupo de \(4\) bits. Um algarismo hexadecimal corresponde exatamente a um nibble.
Ponto de código Um valor numérico atribuído a um caractere Unicode.
Complemento de dois Um método comum de largura fixa para interpretar padrões binários como números inteiros com sinal.
IEEE-754 Um padrão amplamente usado para representar números de ponto flutuante, como precisão simples e precisão dupla.

Como funciona a conversão de bases numéricas

Um número posicional é uma soma de valores de algarismos multiplicados por potências da base. Para uma base \(b\), cada algarismo \(d_i\) contribui com \(d_i b^i\), em que \(i\) é a posição do algarismo.

Uma forma compacta de escrever isso é:

$$ N = \sum_{i=-m}^{k} d_i b^i $$

Em que:

  • \(N\) é o valor representado pelo número.
  • \(b\) é a base.
  • \(d_i\) é o valor do algarismo na posição \(i\).
  • Potências positivas correspondem às posições da parte inteira.
  • Potências negativas correspondem às posições fracionárias.

Por exemplo:

$$ \text{1011.101}_2 = 1\times2^3 + 0\times2^2 + 1\times2^1 + 1\times2^0 + 1\times2^{-1} + 0\times2^{-2} + 1\times2^{-3} $$
$$ \text{1011.101}_2 = 8 + 0 + 2 + 1 + \frac{1}{2} + 0 + \frac{1}{8} = 11.625_{10} $$

Essa mesma ideia funciona para qualquer base compatível. A única diferença é o valor de \(b\) e os algarismos permitidos.

Convertendo um número inteiro para outra base

Para converter um número inteiro do sistema decimal para outra base, divida repetidamente pela base de destino e registre os restos. Os restos se tornam os novos algarismos, lidos do último para o primeiro.

Por exemplo, converta \(255_{10}\) para a base \(16\):

$$ 255 \div 16 = 15 \text{ remainder } 15 $$
$$ 15 \div 16 = 0 \text{ remainder } 15 $$

O valor do resto \(15\) é escrito como \(F\) em hexadecimal; portanto:

$$ 255_{10} = \text{FF}_{16} $$

Convertendo uma parte fracionária para outra base

A conversão fracionária funciona na direção oposta. Multiplique a parte fracionária pela base de destino, registre a parte inteira e repita com o novo resto fracionário.

Por exemplo, converta \(0.625_{10}\) para binário:

$$ 0.625 \times 2 = 1.25 \quad \Rightarrow \quad \text{first digit } 1 $$
$$ 0.25 \times 2 = 0.5 \quad \Rightarrow \quad \text{second digit } 0 $$
$$ 0.5 \times 2 = 1.0 \quad \Rightarrow \quad \text{third digit } 1 $$

Assim:

$$ 0.625_{10} = 0.101_2 $$

Algumas frações terminam em uma base, mas se repetem em outra. Por exemplo, \(0.1_{10}\) não tem uma representação binária finita; portanto, uma saída binária de comprimento fixo precisa parar em algum ponto e mostrar uma aproximação.


Bases comuns e seus usos

Base Nome Algarismos Uso comum
\(2\) Binário \(0,1\) Bits, lógica e representação em nível de máquina
\(8\) Octal \(0\)–\(7\) Agrupamento compacto de binário em grupos de 3 bits
\(10\) Decimal \(0\)–\(9\) Aritmética e medições do dia a dia
\(16\) Hexadecimal \(0\)–\(9\), \(A\)–\(F\) Agrupamento compacto de binário em grupos de 4 bits, endereços de memória, valores de cor e valores de bytes

A calculadora é compatível com bases de \(2\) a \(36\). Em bases acima de \(10\), as letras representam valores de algarismos acima de nove. Por exemplo, na base \(36\), \(Z\) representa \(35\).


Texto, pontos de código e bases numéricas

A conversão de texto é diferente da conversão numérica comum. Primeiro, um caractere é identificado por seu ponto de código Unicode; depois, esse ponto de código numérico pode ser escrito em binário, octal, decimal, hexadecimal ou outra base compatível.

Por exemplo, o caractere A tem o ponto de código \(65_{10}\). Como número, ele pode ser escrito como:

$$ 65_{10} = 1000001_2 = 101_8 = 41_{16} $$

No modo de texto, cada ponto de código Unicode é tratado separadamente, incluindo espaços no início, no fim e repetidos. O resultado é uma lista de valores de pontos de código, não um único número combinado nem uma ferramenta de decodificação que transforma pontos de código numéricos novamente em caracteres.


Números inteiros com sinal em complemento de dois

Números inteiros sem sinal tratam cada padrão de bits como zero ou positivo. Números inteiros com sinal também precisam representar valores negativos. O complemento de dois é um método comum que atribui um significado com sinal a cada padrão de bits de largura fixa.

Para uma largura de \(w\) bits, o intervalo usual com sinal é:

$$ -2^{w-1} \le x \le 2^{w-1} - 1 $$

Para \(8\) bits, esse intervalo é:

$$ -128 \le x \le 127 $$

Uma regra útil de interpretação é:

$$ \text{signed value} = \begin{cases} u, & \text{if } u < 2^{w-1} \\ u - 2^w, & \text{if } u \ge 2^{w-1} \end{cases} $$

Em que \(u\) é o valor sem sinal do mesmo padrão de bits.

Por exemplo, \(11111111_2\) é \(255\) como valor sem sinal de 8 bits. Na interpretação em complemento de dois de 8 bits, o bit de sinal está definido; portanto:

$$ 255 - 2^8 = 255 - 256 = -1 $$

É por isso que a largura em bits importa. Os mesmos algarismos escritos podem ter um significado com sinal diferente quando interpretados com uma quantidade diferente de bits.


Codificações de ponto flutuante IEEE-754

A representação de ponto flutuante é usada para números que podem ter partes fracionárias ou magnitudes muito grandes e muito pequenas. Em vez de simplesmente reescrever um número inteiro em outra base, um valor de ponto flutuante IEEE-754 armazena informações como sinal, expoente e significando.

Para valores normais de ponto flutuante binário, a ideia pode ser resumida assim:

$$ (-1)^s \times 1.f \times 2^{e-\text{bias}} $$

Em que:

  • \(s\) é o bit de sinal.
  • \(f\) é a parte fracionária do significando.
  • \(e\) é o valor armazenado do expoente.
  • O viés depende do formato.

É por isso que uma conversão hexadecimal comum e uma codificação hexadecimal de bytes IEEE-754 não são a mesma coisa. O número inteiro \(1_{10}\) é simplesmente \(1_{16}\), mas a codificação IEEE-754 de precisão simples do valor de ponto flutuante \(1.0\) costuma ser mostrada como 0x3F800000. Essa sequência de bytes descreve o formato de ponto flutuante, não o número inteiro escrito na base \(16\).


Exemplos práticos de conversão de bases numéricas

Exemplo 1: decimal para hexadecimal

Converta \(4095_{10}\) para a base \(16\).

Divida por \(16\) e reúna os restos:

$$ \begin{aligned} 4095 \div 16 &= 255 \text{ remainder } 15 \\ 255 \div 16 &= 15 \text{ remainder } 15 \\ 15 \div 16 &= 0 \text{ remainder } 15 \end{aligned} $$

Cada resto \(15\) se torna \(F\); portanto:

$$ 4095_{10} = \text{FFF}_{16} $$

Exemplo 2: fração binária para decimal

Converta \(10.011_2\) para decimal.

$$ \text{10.011}_2 = 1\times2^1 + 0\times2^0 + 0\times2^{-1} + 1\times2^{-2} + 1\times2^{-3} $$
$$ \text{10.011}_2 = 2 + 0 + 0 + \frac{1}{4} + \frac{1}{8} = 2.375_{10} $$

Exemplo 3: uma fração periódica

Converta \(0.1_{10}\) para binário. A multiplicação repetida começa assim:

$$ \begin{aligned} 0.1 \times 2 &= 0.2 \quad \Rightarrow 0 \\ 0.2 \times 2 &= 0.4 \quad \Rightarrow 0 \\ 0.4 \times 2 &= 0.8 \quad \Rightarrow 0 \\ 0.8 \times 2 &= 1.6 \quad \Rightarrow 1 \\ 0.6 \times 2 &= 1.2 \quad \Rightarrow 1 \end{aligned} $$

O padrão continua em vez de terminar de forma exata, então uma calculadora que mostra uma quantidade fixa de algarismos fracionários precisa parar em algum ponto. Esta calculadora mostra uma saída fracionária fixa de 10 algarismos para conversões de bases fracionárias, gerada truncando o processo de multiplicações repetidas em vez de arredondar um valor final exato.


Exemplo 4: caractere de texto para ponto de código

Para o caractere de texto A, o ponto de código é \(65_{10}\). Escrito em bases comuns:

$$ 65_{10} = 1000001_2 = 101_8 = 41_{16} $$

Em uma palavra ou frase, cada caractere é convertido separadamente. A saída é, portanto, uma sequência de números, um por caractere.


Como interpretar o resultado

O resultado Convertido é a resposta principal na base de destino selecionada. Ele informa como o valor de entrada é escrito usando os símbolos de algarismos da base de destino.

As saídas binária, octal, decimal e hexadecimal são representações equivalentes comuns. Elas são úteis para conferir o trabalho, pois o mesmo valor deve ser consistente em todas as bases.

A saída de bits é uma exibição binária agrupada para facilitar a leitura. Agrupar bits em conjuntos de quatro torna as sequências binárias longas mais fáceis de examinar e as alinha naturalmente aos algarismos hexadecimais. Isso nem sempre deve ser interpretado como um layout de armazenamento de largura fixa.

No modo de texto, cada valor de saída corresponde ao ponto de código de um caractere Unicode. Uma sequência como 48 69 na saída de texto decimal representa dois valores de caracteres separados, não o número único \(4869\).

No modo de complemento de dois, o resultado decimal é a interpretação com sinal após a aplicação da largura em bits selecionada. Se o bit de sinal estiver definido, o valor com sinal pode ser negativo, embora esses mesmos bits fossem positivos no modo sem sinal.

As saídas Float32 e Float64 são codificações de ponto flutuante IEEE-754 do valor numérico. É melhor entendê-las como representações em nível de bytes de um formato de ponto flutuante, não como resultados comuns de conversão de bases.


Erros comuns e equívocos

Usar algarismos que não existem na base selecionada. Na base \(2\), apenas \(0\) e \(1\) são válidos. Na base \(8\), \(8\) e \(9\) são inválidos. Na base \(16\), \(G\) é inválido porque o hexadecimal vai somente até \(F\).

Esperar que os prefixos de base sejam detectados automaticamente. Notações como 0b1010, 0o12 ou 0xFF são comuns em linguagens de programação, mas o valor numérico em si deve ser inserido usando algarismos válidos para a base de entrada escolhida.

Confundir conversão de texto com conversão numérica. Inserir A como texto significa converter o ponto de código Unicode do caractere A. Inserir A como um número na base \(16\) significa o algarismo de valor dez.

Usar frações com o modo de complemento de dois. O complemento de dois é uma interpretação de inteiros de largura fixa. Ele não é um formato de números fracionários.

Arredondar cedo demais. Se você estiver fazendo uma conversão manualmente, mantenha algarismos intermediários suficientes antes de arredondar. Frações periódicas podem produzir expansões longas ou infinitas em outra base.

Tratar bytes IEEE-754 como números inteiros hexadecimais comuns. Um resultado Float32 ou Float64 descreve um formato de armazenamento de ponto flutuante. Ele não deve ser interpretado da mesma forma que o campo hexadecimal de um valor inteiro.


Quando usar a conversão de bases numéricas

Use a conversão de bases numéricas quando precisar:

  • Converter valores entre binário, octal, decimal, hexadecimal ou outra base.
  • Conferir tarefas de ciência da computação que envolvam notação posicional.
  • Entender padrões de bits, máscaras, valores de bytes ou formatos de dados de baixo nível.
  • Comparar as interpretações com e sem sinal do mesmo padrão inteiro.
  • Converter caracteres de texto Unicode em valores numéricos de pontos de código.
  • Examinar como um valor numérico é codificado em bytes Float32 ou Float64 IEEE-754.
  • Ensinar ou aprender por que o valor posicional funciona em bases diferentes de dez.

Limitações e pontos importantes

As bases numéricas compatíveis são números inteiros de \(2\) a \(36\). Os algarismos são escritos com \(0\) a \(9\) e as letras \(A\) a \(Z\), portanto bases maiores que \(36\) não são representadas.

As conversões de bases de números inteiros são exatas. As entradas fracionárias são representadas como razões exatas e depois convertidas por multiplicações inteiras repetidas. A saída fracionária na base de destino é fixada em 10 algarismos após a vírgula de base; valores terminantes mantêm zeros à direita até essa largura, enquanto valores periódicos são truncados em vez de arredondados.

O modo de complemento de dois se aplica apenas a números inteiros e exige uma largura em bits positiva. Ele interpreta o valor usando a largura selecionada, mas o resultado convertido é exibido como um valor com sinal, e não como um padrão de bits preenchido de largura fixa.

Valores inteiros muito grandes podem ser convertidos exatamente entre bases nas saídas comuns, e suas partes fracionárias são convertidas exatamente até o limite fixo de exibição de 10 algarismos. As saídas de ponto flutuante são diferentes porque Float32 e Float64 têm precisão finita. Números muito grandes ou muito precisos podem perder precisão ou não caber como valores de ponto flutuante finitos.

A calculadora não trata prefixos no estilo de linguagens de programação, vírgulas, espaços, notação científica ou separadores decimais alternativos como notação numérica. Use a base de entrada selecionada e insira os algarismos diretamente.

O modo de texto converte cada ponto de código Unicode inserido em um número de ponto de código sem remover espaços do texto. Ele não decodifica uma lista de pontos de código numéricos inseridos de volta para texto.

Para trabalhos técnicos importantes, use os resultados da conversão de bases como conferência, mas confirme também o formato, a largura, a ordem dos bytes, a regra de arredondamento e o uso de sinal exigidos pelo sistema com o qual você está trabalhando.


Como usar esta calculadora

  1. Escolha o modo número ou o modo texto.
  2. Insira o valor que deseja converter.
  3. No modo número, escolha a base de entrada de \(2\) a \(36\).
  4. Escolha a base de destino de \(2\) a \(36\).
  5. Para interpretar um número inteiro com sinal, escolha o modo de complemento de dois e insira uma largura em bits positiva.
  6. Confira o valor convertido principal, além das saídas binária, octal, decimal, hexadecimal, de bits agrupados, Float32, Float64 e das etapas.

Perguntas frequentes

Por que o hexadecimal usa letras?

O hexadecimal é a base \(16\), por isso precisa de dezesseis valores de algarismos. Os dez algarismos decimais cobrem \(0\) a \(9\), e as letras \(A\) a \(F\) representam os valores \(10\) a \(15\).


A conversão binária é exata?

A conversão de números inteiros entre bases é exata. A conversão fracionária usa a razão exata da entrada, embora algumas frações se repitam indefinidamente em outra base. A calculadora mostra dez algarismos fracionários: valores terminantes recebem zeros à direita e valores periódicos são encurtados sem arredondamento.


Qual é a diferença entre os modos sem sinal e complemento de dois?

O modo sem sinal trata os algarismos como um valor não negativo. O modo de complemento de dois interpreta um número inteiro usando uma largura fixa em bits; assim, valores com o bit de sinal definido são interpretados como negativos. Portanto, o mesmo padrão de bits pode ter significados diferentes nos modos sem sinal e com sinal.


Posso digitar 0xFF para uma entrada hexadecimal?

Não. Selecione a base \(16\) como base de entrada e insira FF. Prefixos como 0x, 0b e 0o são notações usadas em muitas linguagens de programação, mas não fazem parte da sequência de algarismos desta calculadora.


O que o modo de texto faz?

O modo de texto converte cada ponto de código Unicode, incluindo espaços e outros espaços em branco no início ou no fim, e depois escreve esse valor numérico na base de destino selecionada e em bases comuns. Ele não combina os caracteres em um único número grande nem decodifica pontos de código numéricos de volta para texto.


As saídas Float32 e Float64 são iguais à conversão hexadecimal?

Não. A saída hexadecimal é o valor escrito na base \(16\). Float32 e Float64 são codificações de bytes de ponto flutuante IEEE-754 do valor numérico, portanto incluem detalhes do formato de ponto flutuante, como campos de sinal, expoente e significando.


Fontes e referências

Livros

  1. Randal E. Bryant e David R. O'Hallaron. Computer Systems: A Programmer's Perspective. 3ª ed., Pearson, 2016. Capítulo 2, Representing and Manipulating Information, especialmente notação hexadecimal, representações de inteiros, codificações em complemento de dois e representação de ponto flutuante.
  2. Yale N. Patt e Sanjay J. Patel. Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond. 3ª ed., McGraw Hill, 2020. Capítulo 2, representação de dados, conversão binária e decimal e números inteiros em complemento de dois.
  3. David A. Patterson e John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface. 4ª ed. revisada, Morgan Kaufmann/Elsevier, 2012. Capítulo 3, Arithmetic for Computers.

Fontes on-line e oficiais

  1. Unicode Consortium. “The Unicode Standard: A Technical Introduction.” Acesso em 4 de julho de 2026.
  2. Unicode Consortium. “Glossary of Unicode Terms.” Acesso em 4 de julho de 2026.
  3. IEEE Standards Association. “IEEE 754-2019 - IEEE Standard for Floating-Point Arithmetic.” Publicado em 22 de julho de 2019.
  4. OpenStax via LibreTexts. “4.2: Converting with Base Systems.” Mathematics LibreTexts, última atualização em 2 de janeiro de 2025.
  5. OpenStax. “5.3 Machine-Level Information Representation.” Introduction to Computer Science. Acesso em 4 de julho de 2026.