Calculadora de complemento a dos
¿Qué es el complemento a dos?
El complemento a dos es la forma estándar en que los ordenadores almacenan enteros con signo —números que pueden ser positivos o negativos— usando un número fijo de bits. En lugar de reservar un símbolo aparte para el signo menos, los números negativos se codifican de modo que la suma binaria ordinaria simplemente funciona, sin ningún tratamiento especial del signo. Casi todas las CPU modernas representan los enteros de esta manera.
Esta calculadora toma un entero decimal y un número de bits (8, 16 o 32 bits) y muestra su patrón en complemento a dos tanto en binario como en hexadecimal.
¿Cómo funciona?
Para un ancho elegido de bits, cada valor se almacena como un patrón de bits sin signo:
- Si el número es no negativo, su patrón es simplemente el binario de , rellenado con ceros a la izquierda hasta bits.
- Si el número es negativo, su patrón es el binario de .
Como es negativo en el segundo caso, es un valor positivo menor que , así que siempre cabe en bits. El bit más significativo (el más a la izquierda) acaba siendo para todo número negativo y para todo número no negativo: ese bit actúa como signo.
Fórmula
El resultado se escribe entonces con exactamente dígitos binarios (o dígitos hexadecimales).
Ejemplos resueltos
Ejemplo 1: un número positivo
Codifica en bits. Como , el patrón es simplemente en binario, rellenado hasta ocho dígitos:
Ejemplo 2: menos uno
Codifica en bits. Como , calcula :
Menos uno siempre es una fila ininterrumpida de unos, sea cual sea el ancho.
Ejemplo 3: menos cinco
Codifica en bits. Calcula :
Tabla de referencia (8 bits)
| Decimal | Binario en complemento a dos | Hex |
|---|---|---|
| 5 | 00000101 | 0x05 |
| 0 | 00000000 | 0x00 |
| -1 | 11111111 | 0xFF |
| -5 | 11111011 | 0xFB |
| 127 | 01111111 | 0x7F |
| -128 | 10000000 | 0x80 |
Notas
- Un entero con signo de bits cubre el rango de a ; bits cubre de a ; bits cubre aproximadamente mil millones. Los valores fuera del rango elegido se envuelven módulo .
- El bit inicial es el signo: marca un número no negativo y marca uno negativo.
- Para convertir un número ordinario no negativo a binario sin bit de signo, usa el conversor de decimal a binario, o el conversor de sistemas numéricos general para otras bases.
Preguntas frecuentes
¿Cuánto es -1 en complemento a dos?
En cualquier ancho son todo unos: (0xFF) para 8 bits, (0xFFFF) para 16 bits, y así sucesivamente.
¿Cómo obtengo el complemento a dos de un número negativo a mano?
Escribe la magnitud del número en binario, invierte cada bit y luego suma uno. Para en 8 bits: es , invertir da , y sumar uno da : el mismo resultado que .
¿Por qué importa el número de bits?
El ancho fija cuántos bits ocupa el patrón y, por tanto, el rango de números que puedes almacenar. El mismo valor decimal produce una cadena más larga de ceros o unos a la izquierda a medida que crece el ancho.