Representación de números con signo para niños
En matemáticas, cuando escribimos números negativos, simplemente ponemos un signo "−" delante, como en -5. Pero, ¿cómo hacen las computadoras para entender que un número es negativo si solo usan ceros y unos (el sistema binario)?
Las computadoras tienen varias maneras de representar los números con signo. Este artículo te explicará cuatro métodos principales que usan para esto:
- Signo y Magnitud
- Complemento a uno
- Complemento a dos
- Exceso K (donde K es un valor específico)
Hoy en día, la mayoría de las computadoras usan la representación en complemento a dos porque es muy eficiente.
Cuando hablamos de números negativos, nos referimos a aquellos que son menores que cero. El valor absoluto de un número es su distancia al cero en la recta numérica, sin importar si es positivo o negativo. Por ejemplo, el valor absoluto de 3 es 3, y el valor absoluto de -3 también es 3. Se escribe entre barras: |3| = 3 y |-3| = 3.
Contenido
Cómo las computadoras entienden los números con signo
Las computadoras usan "bits" (que son ceros o unos) para guardar información. Para representar un número con signo, necesitan una forma de indicar si es positivo o negativo.
Signo y Magnitud: Una forma sencilla de ver el signo
Este método es el más parecido a cómo escribimos los números. Para un número de n-bits (por ejemplo, 8 bits):
- Se usa un bit para el signo. Este bit suele ser el primero de la izquierda (el más significativo).
- Si el bit de signo es 0, el número es positivo.
- Si el bit de signo es 1, el número es negativo.
- Los otros (n-1) bits muestran el valor del número, como si fuera positivo (su valor absoluto).
Algunas de las primeras computadoras usaban este método porque era fácil de entender.
Ejemplo de Signo y Magnitud con 8 bits
Imagina que tenemos 8 bits para representar un número. Un bit es para el signo y los otros 7 bits para el valor. Con 8 bits, podemos representar 256 números diferentes.
- Con este sistema, podemos tener 127 números positivos (el bit de signo es 0) y 127 números negativos (el bit de signo es 1).
- También hay dos formas de representar el cero: +0 (00000000) y -0 (10000000).
¿Cómo representamos -97 en Signo y Magnitud? 1. El número es negativo, así que el bit de signo será 1. 2. El valor absoluto de -97 es 97. 3. Convertimos 97 a binario: 1100001. 4. Juntamos el bit de signo y el valor: 11100001. El 1 al principio indica que es negativo.
¿Cómo convertimos 10110101 de Signo y Magnitud a decimal? 1. El primer bit es 1, lo que significa que el número es negativo. 2. Los bits restantes son 0110101. Convertimos 0110101 a decimal, que es 53. 3. Como el bit de signo era 1, el número real es -53. Si hubiera sido 0, sería +53.
Desventajas del método Signo y Magnitud
- Operaciones complicadas: Sumar o restar números es más difícil porque primero hay que ver si tienen el mismo signo.
- Doble cero: Hay dos formas de representar el cero (+0 y -0), lo que puede causar confusiones.
Ventajas del método Signo y Magnitud
- Rango simétrico: Puede representar la misma cantidad de números positivos y negativos (sin contar el doble cero). Por ejemplo, con 8 bits, va de +127 a -127.
Complemento a uno: Invirtiendo los bits
Este método es otra forma de representar números negativos. Para obtener el complemento a uno de un número binario, simplemente se invierten todos sus bits: los 0 se convierten en 1 y los 1 se convierten en 0.
En este sistema, para un número de n-bits:
- El bit más significativo (el primero de la izquierda) indica el signo: 0 para positivo, 1 para negativo.
- Para números positivos, los bits restantes son el valor del número.
- Para números negativos, los bits restantes son el complemento a uno del valor absoluto del número.
Algunas computadoras antiguas, como la PDP-1, usaban este sistema.
Valores de 8 bits | Interpretado en Complemento a uno en decimal | Interpretado como Entero sin signo en decimal |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
00000010 | 2 | 2 |
... | ... | ... |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −127 | 128 |
10000001 | −126 | 129 |
10000010 | −125 | 130 |
... | ... | ... |
11111101 | −2 | 253 |
11111110 | −1 | 254 |
11111111 | −0 | 255 |
Ejemplo de Complemento a uno con 8 bits
¿Cómo representamos -97 en Complemento a uno? 1. El número es negativo, así que el bit de signo será 1. 2. El valor absoluto de -97 es 97. En binario es 1100001. 3. Obtenemos el complemento a uno de 1100001, que es 0011110 (invertimos los bits). 4. Juntamos el bit de signo y el complemento a uno: 10011110.
¿Cómo convertimos 10110101 de Complemento a uno a decimal? 1. El primer bit es 1, lo que significa que el número es negativo. 2. Los bits restantes son 0110101. Como es negativo, debemos obtener su complemento a uno: 1001010. 3. Convertimos 1001010 a decimal, que es 74. 4. Como el bit de signo era 1, el número real es -74. Si el bit de signo hubiera sido 0, el número sería +53 (0110101 en decimal).
Desventajas del Complemento a uno
- Doble cero: Al igual que Signo y Magnitud, tiene dos representaciones para el cero: +0 (00000000) y -0 (11111111).
Ventajas del Complemento a uno
- Rango simétrico: También puede representar la misma cantidad de números positivos y negativos (de +127 a -127 con 8 bits).
- Operaciones aritméticas: Permite sumar y restar de forma más sencilla que Signo y Magnitud, aunque a veces hay que hacer un pequeño ajuste al final (sumar un "acarreo" si lo hay).
Complemento a dos: El método más usado
Este es el método más común en las computadoras modernas. Para obtener el complemento a dos de un número binario, primero se obtiene su complemento a uno y luego se le suma 1.
Otra forma de obtenerlo es: 1. Empezando desde la derecha, encuentra el primer 1. 2. Deja ese 1 y todos los bits a su derecha como están. 3. Invierte todos los bits que quedan a la izquierda de ese primer 1.
En este sistema, para un número de n-bits:
- El bit más significativo (el primero de la izquierda) indica el signo: 0 para positivo, 1 para negativo.
- Para números positivos, los bits restantes son el valor del número.
- Para números negativos, los bits restantes son el complemento a dos del valor absoluto del número.
Valores de 8 bits | Interpretado en Complemento a dos en decimal | Interpretado como Entero sin signo en decimal |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
00000010 | 2 | 2 |
... | ... | ... |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −128 | 128 |
10000001 | −127 | 129 |
10000010 | −126 | 130 |
... | ... | ... |
11111101 | −3 | 253 |
11111110 | −2 | 254 |
11111111 | −1 | 255 |
Ejemplo de Complemento a dos con 8 bits
¿Cómo representamos -97 en Complemento a dos? 1. El número es negativo, así que el bit de signo será 1. 2. El valor absoluto de -97 es 97. En binario es 1100001. 3. Obtenemos el complemento a uno de 1100001, que es 0011110. 4. Le sumamos 1 a 0011110, lo que nos da 0011111. 5. Juntamos el bit de signo y el complemento a dos: 10011111.
¿Cómo convertimos 10110101 de Complemento a dos a decimal? 1. El primer bit es 1, lo que significa que el número es negativo. 2. Los bits restantes son 0110101. Como es negativo, debemos obtener su complemento a dos. 3. Primero, complemento a uno de 0110101 es 1001010. 4. Luego, sumamos 1: 1001010 + 1 = 1001011. 5. Convertimos 1001011 a decimal, que es 75. 6. Como el bit de signo era 1, el número real es -75. Si el bit de signo hubiera sido 0, el número sería +53 (0110101 en decimal).
Desventajas del Complemento a dos
- Rango asimétrico: Con 8 bits, puede representar números de +127 a -128. Hay un número negativo más que positivo. Esto se debe a que el -128 no tiene un equivalente positivo en este sistema.
Ventajas del Complemento a dos
- Un solo cero: Solo hay una forma de representar el cero (00000000), lo que evita confusiones.
- Operaciones sencillas: Las sumas y restas son muy fáciles de hacer para la computadora, lo que lo hace muy eficiente.
Exceso K: Sumando un valor fijo
Este método consiste en sumar un valor fijo, llamado K, a cada número. El número binario resultante está "en exceso" por ese valor K. Este formato se usa a menudo para representar la parte del exponente en números con punto flotante (números con decimales).
El valor de K no es fijo, pero a menudo se elige como 2n-1 o 2n-1-1, donde 'n' es el número de bits.
Valores de 8 bits | Interpretado en Exceso a 127 en decimal | Interpretado como Entero sin signo en decimal |
---|---|---|
00000000 | -127 | 0 |
00000001 | -126 | 1 |
00000010 | -125 | 2 |
... | ... | ... |
01111110 | -1 | 126 |
01111111 | 0 | 127 |
10000000 | 1 | 128 |
10000001 | 2 | 129 |
10000010 | 3 | 130 |
... | ... | ... |
11111101 | 125 | 253 |
11111110 | 126 | 254 |
11111111 | 127 | 255 |
Ejemplo de Exceso 2n-1 con 8 bits
Si usamos 8 bits, K será 28-1 = 27 = 128. Así que estamos en "Exceso a 128".
¿Cómo representamos -97 en Exceso a 128? 1. Tomamos el número -97 y le sumamos el exceso (128): -97 + 128 = 31. 2. Convertimos 31 a binario: 00011111. Este es el número en Exceso a 128.
¿Cómo convertimos 10110101 de Exceso a 128 a decimal? 1. Convertimos 10110101 a decimal, que es 181. 2. Como este valor está en exceso 128, le restamos 128: 181 - 128 = 53. Este es el número real.
Desventajas del Exceso K
- Cálculos intermedios: Requiere pasos adicionales para convertir y entender los números.
- Rango asimétrico: Con 8 bits, el rango va de +127 a -128.
Ventajas del Exceso K
- Orden natural: El número más pequeño se representa con todos los bits en cero, y el más grande con todos los bits en uno.
- No hay separación: Los 'n' bits representan el número completo, no hay una parte para el signo y otra para el valor.
Tabla de comparación de métodos
Esta tabla muestra cómo se representan los números del +8 al -8 usando 4 bits con diferentes métodos.
Decimal | Entero sin signo | Signo y Magnitud | Complemento a uno | Complemento a dos | En exceso a 7 |
---|---|---|---|---|---|
+8 | 1000 | n/d | n/d | n/d | n/d |
+7 | 0111 | 0111 | 0111 | 0111 | 1111 |
+6 | 0110 | 0110 | 0110 | 0110 | 1110 |
+5 | 0101 | 0101 | 0101 | 0101 | 1101 |
+4 | 0100 | 0100 | 0100 | 0100 | 1100 |
+3 | 0011 | 0011 | 0011 | 0011 | 1011 |
+2 | 0010 | 0010 | 0010 | 0010 | 1010 |
+1 | 0001 | 0001 | 0001 | 0001 | 1001 |
+0 | 0000 | 0000 | 0000 | 0000 | 1000 |
-0 | n/d | 1000 | 1111 | n/d | n/d |
-1 | n/d | 1001 | 1110 | 1111 | 0110 |
-2 | n/d | 1010 | 1101 | 1110 | 0101 |
-3 | n/d | 1011 | 1100 | 1101 | 0100 |
-4 | n/d | 1100 | 1011 | 1100 | 0011 |
-5 | n/d | 1101 | 1010 | 1011 | 0010 |
-6 | n/d | 1110 | 1001 | 1010 | 0001 |
-7 | n/d | 1111 | 1000 | 1001 | 0000 |
-8 | n/d | n/d | n/d | 1000 | n/d |
Galería de imágenes
Véase también
En inglés: Signed number representations Facts for Kids