Sistemas de numeración · Gratis · Sin registro

Calculadora de complemento a 2 online

Pasa un número decimal a complemento a 2 o un número en complemento a 2 (binario o hexadecimal) a decimal, en 4, 8, 16, 32 o 64 bits. Te enseña cada paso: el bit de signo, la inversión de bits y la suma de 1 con sus acarreos.

Calculadora de complemento a 2

Elige primero qué conversión quieres hacer
Número de bits
Ejemplos: −20 (8 bits) 45 (8 bits) −700 (16 bits) 10110101 → decimal FFEC → decimal
ESPACIO PUBLICITARIO

¿Qué es el complemento a 2?

El complemento a 2 (también llamado complemento a dos o Ca2) es la forma en la que los ordenadores guardan los números enteros negativos. Como la memoria solo tiene ceros y unos, no hay un sitio para poner el signo menos: el truco está en usar el primer bit para indicarlo.

  • Si el primer bit es 0, el número es positivo y se escribe igual que en binario normal.
  • Si el primer bit es 1, el número es negativo y está escrito en complemento a 2.

Por eso siempre hay que saber cuántos bits tiene el número: el mismo 11101100 vale −20 si es un número de 8 bits con signo, pero 236 si es un número sin signo. Con más bits caben números más grandes:

Bits (N)Número más pequeñoNúmero más grande
4−23 = −823 − 1 = 7
8−27 = −12827 − 1 = 127
16−215 = −32768215 − 1 = 32767
32−231 = −2147483648231 − 1 = 2147483647
64−263 = −9223372036854775808263 − 1 = 9223372036854775807

El patrón es siempre el mismo: con N bits, el número más pequeño es −2N−1 y el más grande 2N−1 − 1. Por ejemplo, con 8 bits: −27 = −128 y 27 − 1 = 127. El más grande lleva ese «− 1» porque el 0 ocupa uno de los huecos de los positivos, y por eso hay un negativo más que positivos.

Cómo pasar de decimal a complemento a 2

Si el número es positivo, no hay que hacer nada especial: se escribe en binario y se rellena con ceros a la izquierda hasta tener los bits que pidan. Si es negativo, se siguen estos 3 pasos:

Paso 1 · Escribe el número sin el signo en binario

Quita el signo menos y pasa el número a binario. Después rellena con ceros a la izquierda hasta tener exactamente los bits que te pidan (8, 16…). Este paso es importante: si no rellenas antes de invertir, el resultado sale mal.

Paso 2 · Invierte todos los bits

Cambia cada 0 por un 1 y cada 1 por un 0. Lo que obtienes se llama complemento a 1.

Paso 3 · Suma 1

Súmale 1 al resultado, empezando por la derecha. En binario, 1 + 1 = 10: escribes un 0 y te llevas 1 a la columna de la izquierda. Lo que sale es el número en complemento a 2, en binario. Si te lo piden en hexadecimal, agrupa los bits de 4 en 4 (lo explicamos más abajo).

Cómo pasar de complemento a 2 a decimal

Hay dos formas de hacerlo. Las dos sirven siempre, para cualquier número en complemento a 2, y dan el mismo resultado: usa la que te resulte más cómoda.

Forma 1 · Invertir y sumar 1

Es la que hace la calculadora paso a paso. Primero mira el primer bit (el de la izquierda):

  • Si es 0, el número es positivo: pásalo a decimal como cualquier binario.
  • Si es 1, el número es negativo: invierte todos los bits, súmale 1, pásalo a decimal y ponle el signo menos delante.

Forma 2 · Atajo: el primer bit cuenta en negativo

En binario normal, cada bit vale una potencia de 2. Con 8 bits, de izquierda a derecha: 128, 64, 32, 16, 8, 4, 2 y 1. En complemento a 2 es exactamente igual, salvo el primer bit, que cuenta en negativo: vale −128 en vez de 128. Así que basta con sumar lo que valen los bits que están a 1. Por ejemplo, 11101100:

Lo que vale−1286432168421
Bit11101100

Sumamos lo que valen los bits a 1: −128 + 64 + 32 + 8 + 4 = −20. El mismo resultado que con la forma 1, pero sin invertir nada ni sumar 1.

  • Si el primer bit es 0, el −128 no se suma y el número sale positivo, igual que en binario normal.
  • Con otro número de bits cambia lo que vale el primero: con 4 bits vale −8, con 16 bits −32768… En general, con N bits vale −2N−1, que es justo el número más pequeño de la tabla de rangos de arriba.

Ejemplo resuelto: −20 en complemento a 2 con 8 bits

  1. Sin el signo, en binario y con 8 bits: 20 = 16 + 4 → 0001 0100
  2. Invertimos todos los bits: 0001 0100 → 1110 1011
  3. Sumamos 1: el último bit es 1, así que 1 + 1 = 10: escribimos 0 y nos llevamos 1. En la siguiente columna, 1 + 1 = 10 otra vez: 0 y nos llevamos 1. En la tercera, 0 + 1 = 1 y ya no hay acarreo. El resto se queda igual.
    1110 1011 + 1 = 1110 1100

Resultado: −20 en complemento a 2 con 8 bits es 1110 1100 (en hexadecimal, EC).

Comprobación con el atajo: −128 + 64 + 32 + 8 + 4 = −20 ✓

Ejemplo de complemento a 2 a decimal: 10110101

  1. Miramos el primer bit: es un 1, así que el número es negativo.
  2. Invertimos todos los bits: 1011 0101 → 0100 1010
  3. Sumamos 1: el último bit es 0, así que 0 + 1 = 1, sin acarreo: 0100 1011
  4. Pasamos a decimal y ponemos el menos: 64 + 8 + 2 + 1 = 75 → −75

Comprobación con el atajo: −128 + 32 + 16 + 4 + 1 = −75 ✓. Puedes comprobar los dos ejemplos en la calculadora.

Complemento a 2 en hexadecimal

El complemento a 2 da como resultado una ristra de bits, así que lo normal es darlo en binario. El problema es que con 16, 32 o 64 bits sale larguísimo, y por eso en programación y en los depuradores se escribe en hexadecimal. No es otro resultado distinto: son los mismos bits escritos de forma más corta, porque cada cifra hexadecimal equivale a 4 bits. Por eso la calculadora te da los dos.

Para pasarlo, agrupa los bits de 4 en 4 empezando por la derecha y cambia cada grupo por su cifra hexadecimal. Por ejemplo, −20 en 8 bits:

1110 1100 → 1110 = E y 1100 = C → EC

Cómo saber si un número hexadecimal es negativo

Mira la primera cifra: si va de 8 a F, su primer bit es 1, así que en complemento a 2 el número es negativo. Si va de 0 a 7, es positivo.

Ojo, porque el mismo número hexadecimal puede valer dos cosas según cómo lo leas. Sin signo (como un número normal) siempre es positivo. En complemento a 2, los que empiezan por 8–F son negativos. Algunos ejemplos:

En hexBitsLeído sin signoLeído en complemento a 2
7F8127127 (empieza por 7: positivo)
EC8236−20
FF8255−1
FD441664836−700
FFFFFFFF324294967295−1

Si tu número no tiene signo, usa la calculadora de hexadecimal a decimal. Si puede ser negativo, elige «Complemento a 2 → Decimal» y «Hexadecimal» en la calculadora de arriba.

Errores típicos con el complemento a 2

  • No rellenar con ceros antes de invertir. Si inviertes 10100 en vez de 00010100, los ceros de la izquierda no se convierten en unos y el número sale positivo.
  • Olvidar el acarreo al sumar 1. Si el último bit es 1, no basta con cambiarlo: 1 + 1 = 10, así que se pone 0 y se lleva 1 a la izquierda, tantas veces como haga falta.
  • Usar pocos bits. Si el número no cabe en el rango (por ejemplo, −200 en 8 bits), no se puede representar: hacen falta más bits.
  • Confundirlo con el complemento a 1. El complemento a 1 es solo invertir los bits. El complemento a 2 es invertir y además sumar 1.

Preguntas frecuentes

¿Qué diferencia hay entre complemento a 1 y complemento a 2?

En complemento a 1, un número negativo se obtiene solo invirtiendo los bits. En complemento a 2 se invierten y además se suma 1. El complemento a 2 es el que usan los ordenadores porque tiene un único 0 (el complemento a 1 tiene un +0 y un −0) y permite sumar y restar con el mismo circuito.

¿Por qué hay un número negativo más que positivos?

Con N bits hay 2N combinaciones. La mitad empieza por 1 (negativos) y la otra mitad por 0, pero entre estas últimas está el 0. Por eso en 8 bits se llega hasta −128 por abajo y solo hasta 127 por arriba.

¿Cuántos bits tengo que usar?

Los que diga el enunciado. Si no lo dice, usa los mínimos para que el número quepa en el rango: por ejemplo, −20 cabe en 8 bits (de −128 a 127), pero −200 necesita 16. La calculadora lo hace sola si dejas «Automático». Ojo: no da igual cuántos bits uses, porque un número negativo se rellena con unos por la izquierda, no con ceros. Por ejemplo, −20 es 1110 1100 en 8 bits y 1111 1111 1110 1100 en 16.

¿Cómo sé si un número en complemento a 2 es negativo?

Mirando el primer bit por la izquierda: si es 1, es negativo; si es 0, es positivo o cero. En hexadecimal, es negativo si la primera cifra va de 8 a F.

¿Cuánto es 11111111 en complemento a 2?

En 8 bits, 11111111 es −1: al invertir sale 00000000 y al sumar 1 sale 00000001, que es 1, así que el número es −1. En cualquier número de bits, todo unos significa −1.

Subir