¿Qué es una calculadora de complemento a 2?
Una calculadora de complemento a 2 convierte números entre decimal, binario y hexadecimal, a la vez que muestra cómo se representan los valores negativos dentro de los ordenadores. El complemento a 2 es el método estándar que utilizan prácticamente todos los procesadores modernos para almacenar enteros con signo, así que comprenderlo resulta imprescindible para programadores, estudiantes de electrónica y cualquiera que trabaje con lógica digital. Esta herramienta te permite introducir un número en cualquier base, elegir el ancho de bits (8, 16 o 32 bits) y ver al instante su representación en complemento a 2 junto con su valor decimal.
Cómo usar la calculadora
- Escribe tu número en el campo de entrada: admite decimal, binario o hexadecimal.
- Selecciona la base de tu número si es necesario.
- Elige el ancho de bits: 8, 16 o 32 bits.
- Consulta los resultados: el valor en binario, hexadecimal y decimal con signo aparece automáticamente.
El ancho de bits importa porque determina el rango de valores que se pueden almacenar. Por ejemplo, un entero con signo de 8 bits abarca valores de -128 a 127, mientras que uno de 16 bits va de -32.768 a 32.767.
La fórmula explicada
Para hallar el complemento a 2 de un número binario, sigue dos pasos:
- Invierte todos los bits (cambia cada 0 por 1 y cada 1 por 0). Esto es el complemento a 1.
- Suma 1 al resultado.
El bit más a la izquierda actúa como bit de signo: 0 indica positivo y 1 indica negativo. Para convertir un decimal negativo a complemento a 2, la fórmula es \(2^{n} + \text{valor}\), donde n es el ancho de bits.
Ejemplo resuelto
Convertir -5 a complemento a 2 de 8 bits:
- Parte de +5 en binario:
0000 0101. - Invierte los bits:
1111 1010. - Suma 1:
1111 1011.
Así, -5 se almacena como 1111 1011, que equivale a FB en hexadecimal. Comprobación: \(251 - 256 = -5\) (el valor sin signo menos 256).
Rangos de Enteros Firmados por Ancho de Bit
El complemento a dos es la forma estándar en que las computadoras representan enteros firmados. Para un ancho de bit dado \(n\), un bit actúa como bit de signo, por lo que el rango firmado representable es \(-2^{n-1}\) a \(2^{n-1}-1\), mientras que una interpretación sin signo de los mismos bits cubre \(0\) a \(2^{n}-1\). Toda la aritmética se ajusta módulo \(2^{n}\).
| Ancho de Bit \(n\) | Mínimo Firmado \(-2^{n-1}\) | Máximo Firmado \(2^{n-1}-1\) | Máximo sin Signo \(2^{n}-1\) | Módulo \(2^{n}\) |
|---|---|---|---|---|
| 8 | -128 | 127 | 255 | 256 |
| 16 | -32,768 | 32,767 | 65,535 | 65,536 |
| 32 | -2,147,483,648 | 2,147,483,647 | 4,294,967,295 | 4,294,967,296 |
| 64 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 | 18,446,744,073,709,551,615 | 18,446,744,073,709,551,616 |
Por ejemplo, el complemento a dos del número decimal 5 en forma de 8 bits es 251 cuando se lee como un byte sin signo, que representa \(-5\) como un valor firmado.
Referencia Decimal–Binaria–Hexadecimal para Valores Comunes de 8 Bits
La siguiente tabla mapea valores decimales firmados representativos a sus formas binarias de complemento a dos de 8 bits y hexadecimales. Los números negativos tienen el bit más significativo establecido en 1. Para negar un valor, invierte los 8 bits y suma 1.
| Decimal Firmado | Binario de 8 Bits | Hexadecimal | Valor sin Signo |
|---|---|---|---|
| -128 | 1000 0000 | 0x80 | 128 |
| -64 | 1100 0000 | 0xC0 | 192 |
| -5 | 1111 1011 | 0xFB | 251 |
| -1 | 1111 1111 | 0xFF | 255 |
| 0 | 0000 0000 | 0x00 | 0 |
| 1 | 0000 0001 | 0x01 | 1 |
| 5 | 0000 0101 | 0x05 | 5 |
| 64 | 0100 0000 | 0x40 | 64 |
| 127 | 0111 1111 | 0x7F | 127 |
Para verificar una forma binaria de forma independiente, puedes convertir el patrón de 8 bits 11111011 de vuelta a decimal, que es igual a 251 como un byte sin signo (interpretado como \(-5\) firmado).
Términos Clave y Definiciones
- Ancho de bit
- El número de dígitos binarios utilizados para almacenar un entero (comúnmente 8, 16, 32 o 64). Fija el módulo \(2^{n}\) y, por lo tanto, el rango de valores representables.
- Bit de signo
- El único bit que indica si un número firmado es negativo (1) o no negativo (0). En complemento a dos es el bit de orden superior.
- Bit más significativo (MSB)
- El bit más a la izquierda, de mayor valor, en un número binario. En un valor de complemento a dos firmado, el MSB actúa también como bit de signo.
- Complemento a uno
- La inversión bit a bit de un número — cada 0 se convierte en 1 y cada 1 se convierte en 0 (\(\overline{B}\)). Es el paso intermedio antes de sumar 1 para formar el complemento a dos.
- Complemento a dos
- La codificación dominante de entero firmado: niega un valor invirtiendo todos los bits y sumando 1, es decir, \(\overline{B}+1 \pmod{2^{n}}\). Da una única representación de cero y permite que el mismo hardware sume números firmados y sin signo.
- Desbordamiento / Ajuste
- Lo que sucede cuando un resultado excede el rango representable para el ancho de bit; el valor se ajusta módulo \(2^{n}\). Por ejemplo, sumar 1 al máximo de 8 bits 127 se ajusta a -128.
- Entero firmado frente a sin signo
- Un entero firmado puede representar negativos usando complemento a dos (rango \(-2^{n-1}\) a \(2^{n-1}-1\)); un entero sin signo trata cada patrón de bits como no negativo (rango \(0\) a \(2^{n}-1\)). Los bits son idénticos — solo la interpretación difiere.
Preguntas frecuentes
¿Por qué los ordenadores usan complemento a 2? Permite que la suma y la resta utilicen el mismo circuito y, a diferencia del signo-magnitud o el complemento a 1, solo existe una única representación del cero.
¿Qué ocurre si mi número es demasiado grande para el ancho de bits? El valor se desborda y «da la vuelta» (overflow), generando un resultado inesperado. Elige un ancho de bits mayor para evitarlo.
¿Cómo vuelvo a convertirlo en un decimal normal? Si el bit de signo es 1, vuelve a aplicar el complemento a 2 y añade un signo negativo; si es 0, léelo como un número binario normal.