Números, operações de bits e unidades

calculadora de complemento de doisUm padrão, duas leituras

Escolha entre codificar um valor matemático e interpretar um padrão de bits existente.

calculadora de complemento de dois

Entrada

Um inteiro, até 256 caracteres. 0b/0o/0x devem corresponder à base. Sem espaços internos, separadores, quebras de linha ou frações.

A entrada é processada neste navegador e não é enviada a um servidor.

Resultados

Resultado decimal
-42
Entrada em decimal
-42
Decimal com sinal
-42
Decimal sem sinal
214
Binário
11010110
Hexadecimal
0xD6
Bit mais significativo
1
Intervalo permitido na entrada
-128 … 127
Intervalo com sinal
-128 … 127
Intervalo sem sinal
0 … 255
Bytes big-endian
D6
Bytes little-endian
D6

Codificar o valor negativo

1. Valor absoluto em binário
00101010
2. Inverter todos os bits
11010101
3. Somar um
11010110

Opções

Valor codifica um inteiro matemático. Padrão de bits lê um padrão não negativo, completa com zeros à esquerda e rejeita o sinal de menos.

Alterar uma opção reinterpreta o texto atual. As duas ordens usam a palavra final e preservam os bits dentro de cada byte.

A entrada está dentro do intervalo escolhido.

A calculadora de complemento de dois ajuda quando o depurador mostra −1, mas o registro contém FF. Antes de alterar o dado, confira a largura do campo e o sinal usado na leitura. O mesmo byte pode estar correto nas duas telas, apenas com interpretações diferentes.

O número 255 não cabe em um byte com sinal, enquanto o padrão FF cabe em oito bits sem perder informação. Separar o significado da entrada evita confundir a codificação de um valor com a leitura de bits que já estão armazenados.

Por que usar esta calculadora de complemento de dois?

Ver o corte sem apagar a origem

A calculadora de complemento de dois mantém 300 no campo e mostra que os oito bits inferiores representam 44. O aviso de estouro não é um erro de digitação: o resultado ainda permite examinar o padrão retido e suas duas leituras. Não há aplicação de truncamento nem substituição automática do valor original.

Uma linha longa de bits permanece intacta enquanto suas oito posições inferiores são copiadas para uma palavra menor.

Trocar bytes inteiros de posição

Em 32 bits, 0x12345678 aparece como 12 34 56 78 em big-endian e 78 56 34 12 em little-endian. O conteúdo de cada byte continua igual. Essas duas sequências descrevem a disposição da mesma palavra, sem inverter os bits internos, trocar os dígitos de cada byte ou alterar o sinal.

Dois blocos de bytes de cores diferentes trocam de posição entre linhas, preservando a ordem de suas marcas internas.

Defina o significado antes da largura

01

Escolha valor ou padrão armazenado

O estado inicial é −42 em decimal, oito bits, com sinal e cálculo automático ligado. Para ler um FF de um registro, selecione Padrão de bits e hexadecimal. A mudança de base apenas relê o texto presente; não reescreve a entrada na nova base.

02

Confira o preenchimento ao ampliar

O padrão FF passa a 00FF em 16 bits e vale 255. O programa não deduz extensão de sinal pelo comprimento do texto. Para manter o valor matemático −1 ao aumentar a largura, digite −1 no modo Valor: a representação de 16 bits será FFFF.

03

Exporte depois da atualização

O cálculo automático espera 350 ms após a última edição. Desligue a opção para usar Calcular ou Ctrl/Cmd + Enter. Qualquer mudança bloqueia a exportação antiga. Exemplo e Limpar mostram a quantidade de campos alterados antes da aplicação; depois você pode desfazer e recuperar a entrada junto com o resultado.

Do número aos bytes armazenados

Comparar as leituras com e sem sinal

Inteiros com sinal usam o intervalo de valores −2^(w−1) a 2^(w−1)−1 para largura w. Sem sinal, o intervalo é 0 a 2^w−1. O byte FF, portanto, pode valer −1 ou 255. A opção escolhida define a leitura principal, mas as duas leituras e os dois intervalos ficam disponíveis para conferência.

Acompanhar o caminho do negativo

Para calcular complemento de dois manualmente, escreva o valor absoluto com a largura desejada, inverta todos os bits e some um. Em −42 com oito bits: 00101010 → 11010101 → 11010110. O painel mostra essas etapas para valores negativos dentro do intervalo com sinal, inclusive o menor deles.

Manter todos os 64 bits exatos

O máximo sem sinal 18446744073709551615 é processado por aritmética inteira, sem passar por ponto flutuante. As saídas binária e hexadecimal recebem zeros à esquerda até a largura selecionada. O relatório também registra texto original, modo, base, limites e ordens de bytes, para que o resultado não perca seu contexto fora da página.

Limites da interpretação

Estouro produz uma prévia modular
Valores fora do intervalo e padrões largos demais mantêm sua entrada. O resultado preserva os w bits inferiores pelo resto não negativo módulo 2^w. Com oito bits e sinal, 128 passa a ser lido como −128 e 256 deixa zero. Isso não torna o valor original representável: o aviso continua visível e acompanha o relatório.
Padrões curtos recebem zeros
Padrão de bits aceita apenas inteiros não negativos e rejeita o sinal de menos, inclusive em −0. Zeros iniciais extras não geram excesso de largura. O limite é a magnitude 2^w−1. Um primeiro bit igual a 1 pode indicar um negativo na leitura com sinal, mas não significa que o padrão excedeu seu tamanho.
A entrada deve ser um único inteiro
As bases são 2, 8, 10 e 16, com prefixos opcionais correspondentes. O limite é de 256 caracteres. Apenas espaços ASCII e tabulações externos são removidos; separadores internos, quebras de linha, frações, notação científica decimal e expressões são rejeitados. Não existem importação de arquivo, URL ou processamento de várias linhas.
Um formato com sinal e quatro larguras
As larguras disponíveis são 8, 16, 32 e 64 bits. Não há modo separado de sinal e magnitude, complemento de um, zero negativo ou ponto flutuante. A inversão vista nas etapas é parte da codificação do negativo, não uma conversão independente para outro formato de números inteiros.
Sem reproduzir uma linguagem ou CPU
A regra matemática não prevê exceções, flags, saturação nem comportamento indefinido de compiladores. As sequências endian só reordenam bytes completos da palavra final e são iguais quando há apenas oito bits. Operações lógicas, deslocamentos e contas com dois operandos ficam fora do escopo desta página.

Perguntas sobre a calculadora de complemento de dois

Como calcular o complemento de dois manualmente?

Defina a largura e escreva o valor absoluto em binário, preenchendo as posições necessárias. Inverta todos os bits e some um. Para −5 em oito bits, 00000101 vira 11111010 e depois 11111011. Confira antes se o número negativo está dentro do intervalo com sinal dessa largura.

O primeiro bit igual a 1 sempre indica um número negativo?

Somente se você estiver lendo binário com sinal no formato de complemento de dois. Sem sinal, esse bit também contribui para a magnitude positiva. Em oito bits, 10000000 significa −128 com sinal ou 128 sem sinal; nenhuma posição é alterada ao comparar as duas interpretações.

Qual é o complemento de dois de 00000000?

O resultado continua 00000000 na mesma largura. Inverter gera 11111111 e somar um produz um transporte além do byte; mantendo os oito bits inferiores, sobra zero. Não existe zero negativo nesse formato. No painel, zero é exibido diretamente, sem abrir as etapas reservadas a valores negativos.

É possível converter números grandes com exatidão?

Sim, a saída suporta até 64 bits exatos e não passa por ponto flutuante. Um inteiro maior também pode ser analisado dentro do limite de 256 caracteres, mas será marcado como fora do intervalo e terá apenas uma prévia dos bits inferiores. Isso não equivale a oferecer largura arbitrária.

O que acontece com uma entrada fora do intervalo?

O campo original permanece intacto e o painel mostra um aviso junto com o resultado modular. Por exemplo, 200 não cabe em oito bits com sinal; seus bits retidos são lidos como −56. Se 200 descreve um padrão já armazenado, use Padrão de bits: ele cabe em oito bits e as duas leituras são válidas.

O resultado parece errado?

Confira outro valor no limite

Use a calculadora de complemento de dois para conferir um valor de fronteira e comparar o que muda ao ajustar o modo ou a largura. Copie o relatório atualizado com a entrada original, o intervalo e as duas interpretações da palavra.