Ir para o conteúdo
Totalmente local

Conversor de complemento para dois

Converta um número inteiro no seu padrão de bits de complemento para dois com largura de bits escolhida, ou descodifique bits de volta para um número.

Entrada

Conversor de complemento para dois

Os computadores armazenam números negativos usando complemento para dois, não um simples sinal de menos — o mesmo padrão de bits representa um valor diferente dependendo de ser lido como número com sinal ou sem sinal. Esta ferramenta converte em ambas as direções: digite um número inteiro por linha e produz o padrão de bits de complemento para dois correspondente na largura escolhida, ou mude de direção e cole padrões de bits para obter o valor decimal com sinal (ou sem sinal) que cada um representa.

Escolha uma largura de bits de 8, 16, 32 ou 64 e um formato de saída binário ou hexadecimal. A opção "Com sinal" controla como um valor é interpretado: quando ativada, um padrão de bits é lido como complemento para dois (portanto o bit superior significa negativo) e um número deve caber no intervalo com sinal para essa largura; quando desativada, ambas as direções tratam os mesmos bits como um número inteiro sem sinal comum. Alternando a direção troca a codificação pela descodificação sem perder a entrada, para que verificar uma conversão de ida e volta seja apenas um clique.

Estouro é onde o complemento para dois fica confuso, então esta ferramenta o torna visível em vez de ocultá-lo: um número fora do intervalo de largura escolhido ainda é encapsulado da maneira como o hardware real o faz — esse encapsulamento é o padrão de complemento para dois correto, não um erro — mas as linhas afetadas também são sinalizadas e contabilizadas no resumo, para que um estouro não intencional numa lista de números não passe despercebido. Desative essa sinalização se estiver deliberadamente explorando o comportamento de encapsulamento e não quiser que seja indicado.

Cole uma coluna inteira de números ou padrões de bits de uma vez; cada linha é convertida de forma independente e as linhas em branco são preservadas para que o resultado permaneça alinhado com a entrada. Tudo é executado localmente no seu navegador — nada que cole, incluindo constantes proprietárias ou valores de firmware, é nunca carregado em nenhum lugar.

FAQ

O que é complemento para dois, em uma frase?
É a forma padrão como os computadores representam números inteiros negativos em binário: os mesmos bits que representam um número positivo grande quando lidos como sem sinal representam um número negativo quando o bit superior é lido como um sinal, e as duas interpretações diferem exatamente de 2^largura.
Por que um valor é sinalizado como "fora do intervalo" em vez de simplesmente um erro?
O encapsulamento é o comportamento correto do complemento para dois para um valor fora do intervalo, não uma falha, portanto a ferramenta ainda produz os bits encapsulados. Sinaliza as linhas afetadas para que um estouro não intencional numa lista de números seja fácil de detectar; desative "Assinalar valores fora do intervalo" se não quiser essa notificação.
O que muda a opção "Com sinal"?
Quando ativada, a descodificação trata o bit superior como um sinal (complemento para dois padrão) e a codificação requer que o número caiba num intervalo com sinal como -128..127 em 8 bits. Quando desativada, os mesmos bits são lidos como um valor sem sinal comum de 0 a 2^largura - 1.
Posso converter uma lista inteira de números de uma vez?
Sim. Cole um número (ou um padrão de bits ao descodificar) por linha e cada linha é convertida de forma independente, na mesma ordem, com linhas em branco preservadas.
Os meus dados são carregados em algum lugar?
Não. A conversão é executada inteiramente no seu navegador — nada que digite ou cole é nunca enviado para um servidor.