ForHosting KIT · Utilidades de desarrollo

Calculadora de signo y magnitud: codificar y decodificar

Esta calculadora de representación de signo y magnitud convierte un entero decimal con signo en un patrón binario de ancho fijo y vuelve a convertir ese patrón en un número.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

A diferencia del complemento a dos, reserva el bit más significativo exclusivamente para el signo y emplea todos los bits restantes para el valor absoluto. Seleccione una operación, indique el valor y el ancho total en bits, y obtendrá el bit de signo, los bits de magnitud, la magnitud numérica, el patrón completo y el valor decodificado. El resultado también identifica la representación especial de cero negativo que permite este sistema numérico.

Cómo codificar un entero con signo

Seleccione la operación de codificación, escriba un entero en base 10 en el campo de valor y elija un ancho total de 2 a 53 bits. La calculadora separa primero el signo de la magnitud absoluta. Una entrada negativa produce un bit de signo inicial igual a 1; el cero y las entradas positivas producen un bit inicial igual a 0. A continuación, convierte la magnitud a binario y añade ceros por la izquierda hasta que ocupe exactamente un bit menos que el ancho elegido. El bit de signo y la magnitud rellenada se unen para formar el patrón final. Por ejemplo, la magnitud 37 es 0100101 en siete bits, de modo que -37 en ocho bits se convierte en 10100101. La posición del signo no amplía el intervalo positivo ni el negativo. Con un ancho w, la mayor magnitud permitida es 2 elevado a w menos 1, y después menos 1. Las entradas fuera de ese intervalo simétrico se rechazan en lugar de truncarse, desbordarse o modificarse sin aviso, por lo que el resultado es fiable para ejercicios, documentación y vectores de prueba.

Cómo decodificar un patrón binario

Seleccione la operación de decodificación e introduzca un valor binario con exactamente tantos dígitos como indique el ancho elegido. Los ceros iniciales son significativos, por lo que el patrón se recibe como texto y no como número decimal. El primer dígito se interpreta únicamente como signo: 0 significa no negativo y 1 significa negativo. Los dígitos restantes se leen como una magnitud binaria sin signo. Si esa magnitud no es cero, se aplica el signo para obtener el entero decimal decodificado. La salida conserva el patrón original y separa además sign_bit, magnitude_bits y magnitude para que usted pueda comprobar cada etapa por separado. Así, 10100101 tiene bit de signo 1, bits de magnitud 0100101, magnitud 37 y valor decimal -37. La calculadora exige que coincidan el ancho declarado y la longitud real. Rechaza espacios, prefijos como 0b, separadores y cualquier dígito distinto de 0 o 1, evitando respuestas aparentemente válidas a partir de secuencias ambiguas.

Comprender el intervalo y el cero negativo

La representación de signo y magnitud resulta fácil de leer porque almacena el signo por separado, pero tiene consecuencias distintas de las del complemento a dos. El intervalo numérico disponible es simétrico: un patrón de ocho bits representa valores ordinarios de -127 a 127, no de -128 a 127. Además, existen dos codificaciones del cero numérico. Todos los bits a cero representan el cero positivo; un bit de signo igual a 1 seguido únicamente por bits de magnitud a cero representa el cero negativo. Ambos se decodifican como valor numérico 0, por eso el campo negative_zero registra expresamente qué representación se recibió. Esta diferencia es útil al estudiar formatos informáticos históricos, conceptos de signo en coma flotante, ejemplos didácticos o ejercicios de hardware donde importa el patrón. La calculadora nunca convierte implícitamente entre signo y magnitud y complemento a dos. Si el sistema de origen utiliza otra representación con signo, identifíquela antes de interpretar sus bits. Para comparar resultados con fiabilidad, mantenga el mismo ancho durante todos los cálculos: el relleno modifica el patrón completo, aunque no cambie la magnitud ni el entero decodificado.

Comprobar ejercicios de lógica digital

Verifique bits de signo, relleno de magnitud, intervalos representables y respuestas decodificadas con un ancho determinado.

Crear vectores de prueba deterministas

Genere patrones exactos de signo y magnitud y valores intermedios estructurados para probar codificadores o decodificadores.

Examinar formatos numéricos heredados

Interprete patrones almacenados sin perder la diferencia relevante entre el cero positivo y el negativo.

¿Cuánto cuesta un cálculo mediante API?

Cada solicitud a la API cuesta $0.002. El mismo cálculo determinista también está disponible gratis en su navegador.

¿Qué anchos de bits se admiten?

Puede elegir cualquier ancho total de 2 a 53 bits, incluido el bit de signo.

¿Por qué el intervalo es menor que en complemento a dos?

Un bit almacena solo el signo y los restantes almacenan la magnitud; por eso, un valor de ocho bits admite como máximo una magnitud de 127.

¿Cómo se gestiona el cero negativo?

Un patrón con bit de signo 1 y magnitud completamente nula se decodifica numéricamente como 0 y devuelve negative_zero con valor verdadero.

¿Puedo incluir el prefijo 0b o espacios?

No. Para decodificar, el valor debe contener exactamente la cantidad solicitada de dígitos binarios, sin prefijos, espacios ni separadores.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

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

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

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"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →