ForHosting KIT · Ferramentas para dev

Calculadora de sinal e magnitude: codificar e decodificar

Esta calculadora de representação por sinal e magnitude converte um inteiro decimal com sinal em um padrão binário de largura fixa e converte esse padrão novamente em número.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Diferentemente do complemento de dois, ela reserva o bit mais significativo exclusivamente para o sinal e usa todos os demais bits para o valor absoluto. Selecione uma operação, informe o valor e a largura total em bits para receber o bit de sinal, os bits da magnitude, a magnitude numérica, o padrão completo e o valor decodificado. O resultado também identifica a representação especial de zero negativo permitida por esse sistema numérico.

Como codificar um inteiro com sinal

Selecione a codificação, digite um inteiro de base 10 no campo de valor e escolha uma largura total entre 2 e 53 bits. A calculadora primeiro separa o sinal da magnitude absoluta. Uma entrada negativa gera um bit de sinal inicial igual a 1, enquanto zero e entradas positivas geram um bit inicial igual a 0. Em seguida, ela converte a magnitude em binário e acrescenta zeros à esquerda até que esse valor ocupe exatamente um bit a menos que a largura selecionada. O bit de sinal e a magnitude preenchida formam o padrão final. Por exemplo, a magnitude 37 é 0100101 em sete bits; portanto, -37 em oito bits se torna 10100101. A posição do sinal não pode ampliar o intervalo positivo nem o negativo. Para uma largura w, a maior magnitude aceita é 2 elevado a w menos 1, e depois menos 1. Entradas fora desse intervalo simétrico são rejeitadas, em vez de truncadas, reenquadradas ou alteradas silenciosamente. Assim, o resultado pode ser usado com segurança em exercícios, documentação e vetores de teste.

Como decodificar um padrão binário

Selecione a decodificação e informe um valor binário com exatamente a mesma quantidade de dígitos da largura escolhida. Zeros à esquerda são relevantes; por isso, o padrão é recebido como texto, e não como número decimal. O primeiro dígito é interpretado apenas como sinal: 0 significa não negativo e 1 significa negativo. Os demais dígitos são lidos como uma magnitude binária sem sinal. Quando essa magnitude não é zero, o sinal é aplicado para obter o inteiro decimal decodificado. A saída preserva o padrão original e também separa sign_bit, magnitude_bits e magnitude, permitindo que você confira cada etapa. O padrão 10100101, por exemplo, possui bit de sinal 1, bits de magnitude 0100101, magnitude 37 e valor decimal -37. A calculadora exige correspondência entre a largura declarada e o tamanho real do padrão. Ela rejeita espaços, prefixos como 0b, separadores e dígitos diferentes de 0 ou 1, impedindo que uma sequência ambígua produza uma resposta aparentemente válida.

Entenda o intervalo e o zero negativo

A representação por sinal e magnitude é simples de ler porque armazena o sinal separadamente, mas essa organização tem consequências diferentes das do complemento de dois. O intervalo numérico disponível é simétrico: um padrão de oito bits representa valores comuns de -127 a 127, e não de -128 a 127. Também existem duas codificações para o zero numérico. Todos os bits iguais a zero representam o zero positivo; um bit de sinal igual a 1 seguido apenas por bits de magnitude iguais a zero representa o zero negativo. Ambos são decodificados como valor numérico 0, portanto o campo negative_zero registra explicitamente qual representação foi recebida. Essa distinção ajuda na análise de formatos computacionais históricos, conceitos de sinal em ponto flutuante, exemplos didáticos ou exercícios de hardware nos quais o padrão de bits importa. A calculadora nunca converte implicitamente entre sinal e magnitude e complemento de dois. Se o sistema de origem usar outra representação com sinal, identifique-a antes de interpretar os bits. Para comparações confiáveis, mantenha a mesma largura em todo o conjunto de cálculos, pois o preenchimento altera o padrão completo sem mudar a magnitude nem o inteiro decodificado.

Conferir exercícios de lógica digital

Verifique bits de sinal, preenchimento da magnitude, intervalos representáveis e respostas decodificadas em uma largura definida.

Criar vetores de teste determinísticos

Gere padrões exatos de sinal e magnitude e valores intermediários estruturados para testes de codificadores ou decodificadores.

Analisar formatos numéricos legados

Interprete padrões armazenados preservando a diferença relevante entre zero positivo e zero negativo.

Quanto custa um cálculo pela API?

Cada solicitação à API custa US$ 0,002. O mesmo cálculo determinístico também está disponível gratuitamente no seu navegador.

Quais larguras de bits são aceitas?

Você pode escolher qualquer largura total entre 2 e 53 bits, incluindo o bit de sinal.

Por que o intervalo é menor que no complemento de dois?

Um bit armazena somente o sinal e os demais armazenam a magnitude; assim, um valor de oito bits tem magnitude máxima de 127.

Como o zero negativo é tratado?

Um padrão com bit de sinal 1 e magnitude formada apenas por zeros é decodificado numericamente como 0 e retorna negative_zero como verdadeiro.

Posso incluir o prefixo 0b ou espaços?

Não. Na decodificação, o valor deve conter exatamente a quantidade solicitada de dígitos binários, sem prefixos, espaços ou separadores.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/elec/signed-magnitude

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/elec/signed-magnitude \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operation":"encode","value":"-37","bit_width":8}'
{
  "operation": "encode",
  "value": "-37",
  "bit_width": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.signed_magnitude",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →