Conversor de Complemento de Dois (8–64 bits)
Converter
O complemento de dois é como quase todo computador armazena inteiros com sinal: o bit superior é o sinal, e um número negativo é formado invertendo os bits de sua magnitude e somando um. Este conversor pega qualquer inteiro — digitado como decimal, hex (0x), binário (0b) ou octal (0o), positivo ou negativo — ajusta-o a uma largura escolhida de 8, 16, 32 ou 64 bits e mostra o padrão de bits resultante com o bit de sinal destacado. Desse único padrão ele lê tanto o valor com sinal (complemento de dois) quanto o valor sem sinal, junto com hex, octal e o complemento de um. É o jeito rápido de responder perguntas como "o que 0xFF significa como byte com sinal?" (−1) ou "como −128 é armazenado em 8 bits?" (0x80), e de ver como os valores dão a volta ao estourar uma largura. A aritmética BigInt de precisão arbitrária mantém exatos os valores de 64 bits. Tudo roda localmente; nada é enviado.
Prefixe com 0x para hex, 0b para binário, 0o para octal; caso contrário decimal. Um − inicial é permitido.
1101 0110
Complemento de dois: o bit superior é o sinal. O mesmo padrão é lido como um valor com sinal e um sem sinal.
Como usar
- Digite um valor em decimal, ou com prefixo 0x / 0b / 0o para hex, binário ou octal.
- Escolha a largura de bits (8, 16, 32 ou 64).
- Leia os valores com e sem sinal, o padrão de bits, hex/octal e o complemento de um; uma nota aparece se o valor não coube e deu a volta.
Perguntas frequentes
- Como um número negativo é representado?
- No complemento de dois, você pega o binário do valor absoluto, inverte cada bit (complemento de um) e soma um. Para um −5 de 8 bits: 5 é 00000101, invertido é 11111010, mais um é 11111011 = 0xFB. O bit superior sendo 1 marca-o como negativo. Esta ferramenta faz isso automaticamente para qualquer largura.
- Por que 0xFF aparece como 255 e −1?
- O mesmo padrão de bits significa números diferentes conforme você o leia sem sinal ou com sinal. Como byte sem sinal, 11111111 é 255; como byte com sinal em complemento de dois, é −1. Hardware e linguagens escolhem uma interpretação por tipo (ex.: uint8 vs int8); esta ferramenta mostra ambas ao mesmo tempo.
- O que acontece se meu número não couber na largura?
- Ele dá a volta. Um valor fora do intervalo da largura é reduzido módulo 2^largura — o mesmo que a aritmética de inteiros de largura fixa faz no estouro. Por exemplo 300 em 8 bits vira 300 − 256 = 44, e a leitura com sinal segue desse padrão. Uma nota sinaliza quando a volta ocorre.
- Complemento de um versus complemento de dois?
- O complemento de um é só o NOT bit a bit — cada 0 vira 1 e vice-versa. O complemento de dois é o complemento de um mais um, e é o que as CPUs modernas usam para inteiros com sinal porque tem um único zero e torna a adição uniforme. A ferramenta mostra o complemento de um como referência extra.
Ferramentas relacionadas
Conversor BCD (decimal codificado em binário)
Converte decimal de e para BCD 8421 — nibbles de 4 bits por dígito, bytes hex de BCD empacotado e verificação de validade BCD.
Conversor de código Gray
Converte entre decimal, binário e código Gray (binário refletido), nos dois sentidos, com largura de bits opcional e uma tabela de referência 0-7.
Conversor IEEE 754 (32 e 64 bits)
Veja o layout exato de bits IEEE 754 de qualquer número em float32 e float64 — bits de sinal, expoente e mantissa, hex, o valor armazenado e o arredondamento — ou decodifique bits hex de volta a um número, tudo no seu navegador.
Conversor de Algarismos Romanos
Converta entre algarismos arábicos e romanos de 1 a 3999.
Conversor de Bases Numéricas
Converta números entre binário, octal, decimal e hexadecimal.
Conversor de Unidades
Converta comprimento, peso, temperatura, área, volume, velocidade e tempo.