Conversor Binário/Hexadecimal

Converta números entre binário, hex, decimal e octal — ou transforme texto em bytes.

Pronto. Digite um número ou texto para converter.

Todas as conversões são executadas no seu navegador. Seus números e textos nunca saem do seu dispositivo.

FAQ

O que posso converter aqui?

Duas coisas. O modo Número vincula binário, octal, decimal e hexadecimal — edite qualquer campo e os outros serão atualizados instantaneamente. O modo Texto transforma qualquer texto em seus valores de byte na base escolhida e lê esses bytes de volta em texto.

Ele suporta números negativos e muito grandes?

Sim. Os números negativos mantêm o sinal de menos em todas as bases e não há limite de tamanho prático — os valores são convertidos de forma exata, sem arredondamentos. Não há uma visualização em complemento de dois com largura fixa, pois isso só faz sentido após escolher uma largura de bits específica.

Minha entrada é enviada para algum lugar?

Não. Tudo é calculado localmente no seu navegador, portanto, nada do que você digita é enviado para fora do seu dispositivo.

Conversão de Bases Numéricas sem Arredondamento

A conversão entre diferentes sistemas de numeração é uma tarefa fundamental na computação e na eletrônica digital. Este conversor realiza a tradução instantânea de valores entre as bases binária (base 2), octal (base 8), decimal (base 10) e hexadecimal (base 16).

Diferente de calculadoras padrão que utilizam tipos de dados de precisão flutuante limitados, esta ferramenta processa números utilizando a convenção BigInt. Isso significa que os números são analisados e formatados como inteiros de precisão arbitrária, suportando valores de até 4.096 caracteres. Essa abordagem garante que não ocorram arredondamentos ou perda de dados, permitindo a conversão exata de números extremamente grandes.

Comportamento dos Campos no Modo Número

Ao selecionar o modo de operação Número, a interface apresenta quatro campos principais: Binário, Octal, Decimal e Hexadecimal. O comportamento do sistema segue regras estritas de sincronização e formatação:

  • Atualização Bidirecional: A edição de qualquer um dos quatro campos atualiza instantaneamente os outros três com o valor equivalente na respectiva base.
  • Sinalização de Negativos: Os números negativos mantêm o sinal de menos (-) como caractere líder em todas as bases de saída.
  • Prefixos e Espaçamentos: O analisador aceita entradas que contenham espaços ao redor, sublinhados (_) como separadores visuais e prefixos comuns de programação, tais como 0b para binário, 0o para octal e 0x para hexadecimal.
  • Letras Maiúsculas: A saída no campo Hexadecimal exibe as letras representativas (A–F) sempre em formato maiúsculo.

Se um caractere incompatível com a base selecionada for inserido, o sistema interrompe a conversão e exibe a mensagem de erro: "Número inválido para essa base — verifique se há dígitos que ela não pode conter.". Quando a conversão ocorre com sucesso, o status do sistema é definido como "Convertido.".


Codificação de Texto em Bytes via UTF-8

Além da conversão puramente numérica, a ferramenta opera no modo Texto, permitindo traduzir caracteres legíveis em suas representações de bytes correspondentes e vice-versa.

O padrão de codificação utilizado para esta operação é o UTF-8. Sob este protocolo, cada caractere pode ser representado por uma sequência de um a quatro bytes, garantindo compatibilidade universal de caracteres.

[Texto de Entrada] ──(Codificação UTF-8)──> [Valores de Byte na Base Escolhida]
[Texto de Saída]  <──(Decodificação UTF-8)── [Valores de Byte na Base Escolhida]

Direção: Texto → Bytes

Nesta direção, o usuário insere qualquer texto no campo de entrada, respeitando o limite máximo de 200.000 caracteres. O sistema converte cada caractere em seus respectivos bytes sob a codificação UTF-8 e exibe o resultado formatado na base numérica escolhida (Binário, Octal, Decimal ou Hexadecimal).

Para garantir a legibilidade e a padronização dos dados de saída, o conversor aplica um preenchimento de zeros à esquerda (padding) nos bytes gerados:

  • Binário: Preenchido com zeros à esquerda até completar 8 bits (ex: 01100001).
  • Octal: Preenchido com zeros à esquerda até completar 3 bits (ex: 141).
  • Hexadecimal: Preenchido com zeros à esquerda até completar 2 bits (ex: 61).
  • Decimal: Exibido em seu valor natural, sem preenchimento de zeros à esquerda.

Após concluir a codificação, o status da ferramenta é atualizado para "Codificado.".

Direção: Bytes → Texto

Na direção inversa, o usuário fornece uma sequência de códigos de bytes na base selecionada para obter o texto decodificado. Os valores de bytes inseridos podem ser separados por espaços em branco ou por vírgulas.

Para que a decodificação ocorra com sucesso, o fluxo de entrada deve respeitar as seguintes regras de validação:

  1. Dígitos Válidos: Cada caractere inserido deve pertencer estritamente à base numérica selecionada. Caso contrário, o sistema exibe o erro: "Número inválido para essa base — verifique se há dígitos que ela não pode conter.".
  2. Faixa do Byte: Cada token numérico isolado deve representar exatamente um byte, ou seja, situar-se no intervalo decimal de 0 a 255. Se um valor estiver fora desse limite, o sistema exibe o erro: "Códigos de byte inválidos — cada valor deve ser de um byte (0–255) na base escolhida.".
  3. Integridade UTF-8: A sequência completa de bytes deve formar um fluxo UTF-8 válido. Se os bytes representarem uma sequência incompleta ou corrompida que não possa ser mapeada para caracteres reais, o sistema exibe o erro: "Esses bytes não são UTF-8 válidos, portanto não podem ser exibidos como texto.".

Após uma decodificação bem-sucedida, o status da ferramenta passa a ser "Decodificado.".


Limites Operacionais e Mensagens de Erro

A tabela abaixo resume as mensagens de erro disparadas pelo conversor e as condições exatas que as provocam:

Mensagem de Erro Causa do Disparo
"Número inválido para essa base — verifique se há dígitos que ela não pode conter." Inserção de caracteres não permitidos na base ativa (ex: digitar 'A' no campo decimal ou '2' no campo binário).
"Códigos de byte inválidos — cada valor deve ser de um byte (0–255) na base escolhida." No modo de decodificação de bytes para texto, um dos valores informados ultrapassa o limite de 255 em decimal (ou o equivalente nas outras bases).
"Esses bytes não são UTF-8 válidos, portanto não podem ser exibidos como texto." A sequência de bytes fornecida não corresponde a uma estrutura de caracteres válida sob a especificação UTF-8.
"A entrada é longa demais para esta ferramenta — tente algo menor." O texto inserido no campo de entrada excede o limite físico de 200.000 caracteres.

Quando o usuário clica no botão para limpar os campos, todos os dados são apagados e o status é alterado para "Limpo.".


Privacidade e Processamento Local

A arquitetura deste conversor foi projetada com foco na privacidade dos dados. Todo o processamento de dados, incluindo a análise de inteiros de precisão arbitrária e a codificação ou decodificação de strings UTF-8, ocorre estritamente no navegador do usuário.

Nenhum dado numérico ou textual inserido nos campos é transmitido para servidores externos ou armazenado fora do dispositivo local. O isolamento do ambiente de execução garante que informações sensíveis permaneçam restritas ao navegador onde a operação é realizada.


Perguntas Frequentes (FAQ)

O que posso converter aqui?
Duas coisas. O modo Número vincula binário, octal, decimal e hexadecimal — edite qualquer campo e os outros serão atualizados instantaneamente. O modo Texto transforma qualquer texto em seus valores de byte na base escolhida e lê esses bytes de volta em texto.

Ele suporta números negativos e muito grandes?
Sim. Os números negativos mantêm o sinal de menos em todas as bases e não há limite de tamanho prático — os valores são convertidos de forma exata, sem arredondamentos. Não há uma visualização em complemento de dois com largura fixa, pois isso só faz sentido após escolher uma largura de bits específica.

Minha entrada é enviada para algum lugar?
Não. Tudo é calculado localmente no seu navegador, portanto, nada do que você digita é enviado para fora do seu dispositivo.

Por que recebo um erro de UTF-8 inválido ao tentar decodificar bytes?
Esse erro ocorre quando a sequência de bytes fornecida não corresponde a uma estrutura de caracteres válida sob a especificação UTF-8. Isso acontece se houver bytes ausentes em caracteres multi-byte ou se os valores inseridos não mapearem pontos de código válidos na tabela Unicode.