Signo y magnitud, complemento a 1 y a 2 y el exceso Z para tontos

Home  >>  Apuntes ASIR  >>  Signo y magnitud, complemento a 1 y a 2 y el exceso Z para tontos

Signo y magnitud, complemento a 1 y a 2 y el exceso Z para tontos

La aritmética binaria, al igual que toda rama de las matemáticas, puede ser tediosa, frustrarte y complicada si no se tiene una explicación simple y unas buenas bases. En esta entrada intentaré explicar las operaciones de suma y resta utilizadas por las máquinas de la manera lo más simple que pueda.

Para empezar, debemos comprender que las máquinas funcionan con el sistema binario (del 0 al 1), y no con el decimal (del 0 al 9). Para diferenciarlo y remarcarlo pondremos a veces los números en base 10 (n10) o en base 2 (n2).

Introducción

Antes que nada, debo remarcar que esto se puede realizar con cualquier cantidad de bits, pero en esta entrada solo usaremos 4 bits para mostrar ejemplos más sencillos.

Los bits en binario irán del 0000 al 1111, el valor de estos tendrán un significado diferente en cada ocasión, tendremos tablas para mostrarlo más visualmente.

Signo y Magnitud

El sistema de Signo y Magnitud utiliza el primer bit para identificar si el número es positivo o negativo, 0 indica que el número es positivo y 1 negativo. De esta forma, con un total de 4 bits, podemos obtener desde el 7 hasta el -7. El número 0 también tiene su contraparte negativa.

Número decimalRepresentación Signo y Magnitud
8
70111
60110
50101
40100
30011
20010
10001
00000
-01000
-11001
-21010
-31011
-41100
-51101
-61110
-71111
-8

Cuando sumar y cuando restar

Es importante saber en qué momento hay que operar con suma y en cual se utiliza la resta. En el caso del Signo y Magnitud se realiza una suma cuando los signos son iguales, y se resta cuando son distintos signos.

Tenemos que tener en cuenta que en -5 – 4 se tendría que realizar una suma, porque el signo se lo lleva el 4, resultando en -5 + (-4) y ambos dígitos tienen el mismo signo.

Suma

La suma en Signo y Magnitud se realiza como una suma binaria normal y corriente, obviando el primer dígito, que indica el Signo.

En las sumas ambos signos son iguales, por lo que el signo se mantiene, ya sea 1 o 0.

Resta

La resta se hace cuando el signo de ambos números es distinto. Se opera como una resta normal, apartando los símbolos. El símbolo que queda como resultado es el del número de mayor magnitud.

Complemento a 1

La representación del complemento a 1 (a partir de ahora C1) utiliza como base el Signo y Magnitud. El C1 no varía frente al Signo y Magnitud cuando se trata de números positivos. En los números negativos se debe calcular la diferencia entre el número máximo (710 en nuestro caso porque nuestro máximo binario es 1112) y nuestro número. Por ejemplo, el C1 de 6 es 1 porque solo le falta 1 número para llegar a 7, el C1 de 3 es 4 porque le faltan 4 números para llegar a 7.

Una forma rápida de calcular esto en binario es invirtiendo la magnitud de los números negativos. Siempre manteniendo intacto el primer bit, porque este indica el signo. Quedando así el 1100 como 1011. A continuación una tabla comparativa.

DecimalSigno y MagnitudComplemento a 1
8
701110111
601100110
501010101
401000100
300110011
200100010
100010001
000000000
-010001111
-110011110
-210101101
-310111100
-411001011
-511011010
-611101001
-711111000
-8

Cuando sumar y cuando restar

La norma de oro es que siempre se suma en los complementos. Cuando se trata de 5 + 2 puede parecer fácil, pero cuando nos encontramos un 5 – 2 debemos juntar el signo con el número siguiente, quedando así 5 + (-2).

Con los números negativos pasa lo mismo, un -5 – 2 se transforma en -5 + (-2).

Suma

En este caso, a diferencia del Signo y Magnitud, el signo se incluye en la suma.

Habrá ocasiones donde aparezca un exceso. El exceso es aquel número que sobrepasa el límite de nuestras operaciones. En este caso, trabajamos con un máximo de 4 dígitos (de 0000 a 1111), un exceso sería el 10000.

Cuando aparece un exceso, se retira y se suma al resultado. Aquí vemos un ejemplo:

Podemos comprobar en la tabla de arriba como 1001 coincide con -6 en C1.

Complemento a 2

Para conseguir el Complemento a 2 (a partir de ahora C2) se debe obtener primero el C1 y sumarle 1 a los número negativos. El objetivo de esto es evitar la suma del número excedido que se realiza siempre en el C1. Como siempre, aquí vamos con una tabla comparativa.

DecimalSigno y MagnitudComplemento a 1Complemento a 2
8
7011101110111
6011001100110
5010101010101
4010001000100
3001100110011
2001000100010
1000100010001
0000000000000
-010001111
-1100111101111
-2101011011110
-3101111001101
-4110010111100
-5110110101011
-6111010011010
-7111110001001
-81000

Suma

Con el cambio que ya hemos realizado en la tabla, a partir de ahora la suma se realiza exactamente igual. La única diferencia ahora es que el número excedente se descarta en lugar de sumarlo. Recordamos que los positivos son iguales en el C2, el C1 y el Signo y Magnitud

Exceso Z

El Exceso Z varía dependiendo de la cantidad de dígitos con los que trabajemos, en este caso solo con 4. Para calcular el Exceso Z tenemos que saber que Z = 2(n-1) siendo n el número de dígitos. Z = 2(4-1) = 23 = 8. Con esto conseguimos saber cual es el número máximo que podemos obtener. Como podemos observar en las tablas de arriba, el número 8 y -8 siempre aparecen como primera y última opción.

Ahora que conocemos el número mínimo y máximo, tenemos que tener en cuenta que el mínimo será el 0 a partir de ahora, en otras palabras, -810 = 00002. Para tenerlo de forma más visual y con sentido, vamos a ver la tabla.

DecimalSigno y MagnitudComplemento a 1Complemento a 2Exceso Z
8
70111011101111111
60110011001101110
50101010101011101
40100010001001100
30011001100111011
20010001000101010
10001000100011001
00000000000001000
-010001111
-11001111011110111
-21010110111100110
-31011110011010101
-41100101111000100
-51101101010110011
-61110100110100010
-71111100010010001
-810000000

Si se es observador, se puede ver como el Exceso Z es igual al C2 con el signo invertido. Esta es una forma más fácil de obtenerlo.

Cuando sumar y cuando restar

Ya hemos visto como en Signo y Magnitud se sumaba con los signos iguales y restaba con signos distintos, y en los complementos siempre se suma. En este caso, nuestro objetivo será hacer que ambos números tengan el mismo signo.

Una vez hayamos preparado la operación, será hora de sumar o restar dependiendo de las circunstancias.

Suma

Inicialmente, la suma se realiza de forma normal, teniendo en cuenta el signo durante la operación. Tras sumar, debemos restar el Exceso Z, recordamos que en nuestro caso es 810 = 10002. Siempre va a ser un 1 en la posición más alta, seguido de 0 en el resto de posiciones.

Resta

En el caso de la resta, también haremos la operación de forma normal. Cuando tengamos el resultado, tendremos que sumar el Exceso Z.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *