Calculadora de complemento a dos (con complemento a uno y signo-magnitud)
Convierte un número decimal con signo a complemento a dos en binario (de 4 a 32 bits) con los pasos de invertir y sumar uno, complemento a uno, signo-magnitud y hexadecimal, o decodifica un binario a decimal.
Cómo funciona
Negativo n en w bits: escribe |n| en binario, invierte todos los bits y suma 1 (equivale a 2ʷ − |n|) · decodificar: valor = −b₍w−1₎·2^(w−1) + Σ bᵢ·2ⁱ · rango: −2^(w−1) … 2^(w−1) − 1 · complemento a uno = solo invertir los bits; signo-magnitud = bit de signo + |n|
El complemento a dos es la forma en que prácticamente todos los procesadores guardan los enteros con signo: el bit más significativo tiene peso negativo, así que el mismo sumador sirve para números positivos y negativos y solo existe un cero. Para cambiar de signo un número se invierten todos sus bits y se suma uno. La calculadora muestra esa receta paso a paso, además de las representaciones antiguas en complemento a uno y signo-magnitud para comparar, y el valor sin signo que tendría el mismo patrón de bits, útil al leer registros o conversiones en C.
Ejemplo resuelto
−45 en 8 bits: 45 = 0010 1101 → invertir → 1101 0010 → sumar 1 → 1101 0011 (0xD3). Leídos sin signo, esos mismos bits valen 211 = 256 − 45. En complemento a uno sería 1101 0010 y en signo-magnitud 1010 1101. En sentido inverso, 11010011 tiene el bit de signo en 1, así que se invierte (0010 1100) y se suma 1 (0010 1101 = 45): el valor es −45.
Fuentes: Two's complement — Wikipedia · Signed number representations — Wikipedia
Preguntas frecuentes
¿Cómo se saca el complemento a dos de un número negativo?
Escribe el valor positivo en binario con todos los bits del ancho elegido, invierte cada bit (0 ↔ 1) y suma 1. Atajo: copia los bits desde la derecha hasta el primer 1 incluido, y luego invierte todos los que quedan a su izquierda.
¿Cuál es el rango de un número de 8 bits en complemento a dos?
De −128 a +127. En general, w bits abarcan de −2^(w−1) a 2^(w−1) − 1: con 16 bits de −32,768 a 32,767 y con 32 bits de −2,147,483,648 a 2,147,483,647. Hay un valor negativo más que positivos porque el cero ocupa un lugar del lado positivo.
¿Por qué −128 no tiene complemento a uno ni signo-magnitud en 8 bits?
Esas representaciones tienen dos ceros (+0 y −0), así que solo llegan a −127. El complemento a dos usa el patrón sobrante 1000 0000 para −128, y por eso es el estándar.
¿Cómo sé si un número binario es negativo?
Solo si sabes que es un valor con signo en complemento a dos y de ancho fijo: entonces un 1 al inicio indica negativo. Los mismos bits 1101 0011 valen 211 como byte sin signo y −45 como byte con signo; lo que decide es la interpretación, no los bits.
¿Qué diferencia hay entre complemento a uno y complemento a dos?
El complemento a uno solo invierte los bits (−45 = 1101 0010) y tiene +0 y −0; para sumar necesita un acarreo circular. El complemento a dos suma 1 después de invertir (−45 = 1101 0011), tiene un solo cero y permite que la suma binaria normal funcione con números con signo.
Calculadoras relacionadas
Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.