Mantenha valores inteiros exatos e o sinal explícito
A base altera a forma como um valor é escrito, não o valor em si. Decimal 255, binário 11111111, octal 377 e hexadecimal FF descrevem o mesmo inteiro não negativo. A notação posicional atribui uma potência da base a cada dígito. Lendo da esquerda para a direita, é possível construir o valor multiplicando o total atual pela base e somando o próximo dígito.
Valores grandes exigem cuidado especial. Números de ponto flutuante comuns em JavaScript não conseguem representar exatamente todos os inteiros acima de 9.007.199.254.740.991. Este conversor acumula os dígitos com aritmética de inteiros, de modo que um identificador como 9.007.199.254.740.993 preserva o último dígito. Os limites de entrada continuam valendo para manter a ferramenta responsiva; a aritmética exata não significa tamanho de entrada ilimitado.
Padrões de bits com sinal precisam de uma largura. Em complemento de dois de oito bits, FF representa menos um; em dezesseis bits, 00FF representa 255 positivo. A entrada decimal nesse modo é interpretada como o valor com sinal a ser codificado. A entrada das outras bases é interpretada como um padrão de bits não negativo. O conversor rejeita estouros em vez de descartar silenciosamente os bits mais significativos e mostra a interpretação da primeira linha válida.
Use um inteiro por linha ao converter uma lista. Linhas em branco são ignoradas, mas suas posições continuam refletidas nos resultados. Linhas inválidas trazem uma explicação, enquanto as linhas válidas permanecem disponíveis. Esta ferramenta exclui intencionalmente números fracionários, notação científica e decodificação de bytes em texto. Essas tarefas envolvem regras diferentes. Para uma mensagem codificada em bytes binários ou hexadecimais, use o tradutor de texto relacionado.