Sie sind auf Seite 1von 4

SIGNO Y MAGNITUD

Un primer enfoque al problema de representar un nmero signado de n-bits


consiste en asignar:
1. un bit para representar el signo. Ese bit a menudo es el bit ms
significativo o MSB (de sus siglas en ingls) y, por convencin: un 0
denota un nmero positivo, y un 1 denota un nmero negativo;
2. los (n-1)-bits restantes para representar el significando que es la
magnitud del nmero en valor absoluto.
Y se conoce como Signo y Magnitud.
Este enfoque es directamente comparable a la forma habitual de mostrar el
signo (colocando "+" o "-" al lado de la magnitud del nmero). Algunas de las
primeras computadoras binarias (la IBM 7090) utilizaron esta representacin,
quizs por su relacin obvia con la prctica habitual.
El formato Signo y Magnitud es adems el habitual para la representacin del
significando en nmeros en punto flotante.

Ejemplo de Signo y Magnitud


Sea una representacin en formato de Signo y Magnitud que nos permite
codificar en binario en punto fijo con 8 bits (un byte). Esto nos otorga 1 bit para
el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, en teora al
menos (vase Desventajas, ms abajo), 28 = 256 nmeros. Los cuales, segn
ste formato, van a estar repartidos entre 128 nmeros positivos (bit de signo
en 0) y 128 nmeros negativos (bit de signo en 1).
Supongamos ahora, que tenemos que representar el nmero -97 10 (decimal).
Procedemos a:
1. Tomar nota del signo del nmero -97 10, que siendo negativo, llevar
como bit de signo un 1;
2. Realizar la conversin: el valor absoluto de -97 10 es |-9710| = 9710. Que en
binario es: 11000012;
3. Colocar todo junto, el nmero -97 10 en binario con formato de Signo y
Magnitud es: 111000012. Donde el 1 en el bit ms significativo indica un
nmero negativo, y 11000012 es el significando en valor absoluto.
Para el caso inverso, dado un nmero binario en Signo y Magnitud, por
ejemplo, 101101012, procedemos a:
1. Analizar el bit ms significativo, que siendo un 1 indica que el nmero es
negativo;
2. Convertir el significando a la base deseada, por ejemplo, en decimal,
tomando en cuenta que el valor obtenido est en valor absoluto y la
magnitud real estar dada por el bit de signo obtenido antes: 0110101 2 =

|5310|. Siendo que el bit de signo es 1, el nmero real es -53 10. Si el bit de
signo fuese 0, el nmero hubiese sido +5310.

Desventajas de la representacin en Signo y Magnitud


Siguiendo con el ejemplo de n = 8 (8 bits).

No permite operar aritmticamente. De intentar hacer una suma sencilla


de un nmero positivo y uno negativo, se obtienen resultados
incorrectos. Por ejemplo: 000101012 + 111000012 = 111101102 (+2110 +
-9710 = -11810 -7610).
Posee doble representacin del cero. Al representar en Signo y
Magnitud, aparece el cero signado: 000000002 (+010) y 100000002 (-010).

Ventajas de la representacin en Signo y Magnitud


Siguiendo con el ejemplo de n = 8 (8 bits).

Posee un rango simtrico: los nmeros van del +127 10 = 011111112,


pasando por el +010 = 000000002 y el -010 = 100000002, hasta el -12710 =
111111112. Y en forma general, para n-bits, el rango (en decimal) para
Signo y Magnitud es (-2n-1-1; 2n-1-1), o bien 2n-1-1.

Complemento a dos
Otro enfoque sera representar nmeros negativos usando el
complemento a la base. En el caso de los nmeros binarios, sera el
complemento a dos y la forma de obtener el complemento a dos de
un nmero binario es mediante la obtencin del complemento a uno
y sumarle uno, o bien:
Ejemplo
Ejemplo 2
1
1. Empezando desde la derecha encontramos
0101001 0101100
el primer '1'
2. Hacemos un NOT a todos los bits que
1010111 1010100
quedan por la izquierda
De esta forma, en la representacin por Complemento a dos de un
nmero signado de n-bits asignamos:
1. un bit para representar el signo. Ese bit a menudo es el bit
ms significativo y, por convencin: un 0 denota un nmero
positivo, y un 1 denota un nmero negativo;
2. los (n-1)-bits restantes para representar el significando que es
la magnitud del nmero en valor absoluto para el caso de
2

nmeros positivos, o bien, en el complemento a dos del valor


absoluto del nmero, en caso de ser negativo.
Observar as que la representacin en Complemento a dos de un
nmero negativo se puede obtener de la representacin en Signo y
Magnitud por una mera inversin de unos por ceros y ceros por
unos del significando, y sumarle uno al valor obtenido.
Ejemplo de Complemento a dos
Sea una representacin en formato de Complemento a dos que nos
permite codificar en binario en punto fijo con 8 bits (un byte). Al igual
que con la representacin en Signo y Magnitud, y Complemento a
uno, esto nos otorga 1 bit para el signo y 7 bits para la magnitud.
Con 8 bits, podemos representar, 2 8 = 256 nmeros. Los cuales,
segn ste formato, van a estar repartidos entre 128 nmeros
positivos (bit de signo en 0) y 128 nmeros negativos (bit de signo
en 1).
Supongamos ahora, que tenemos que representar el nmero -97 10.
Procedemos a:
1. Tomar nota del signo del nmero -9710, que siendo negativo,
llevar como bit de signo un 1;
2. Como el signo es negativo, el nmero a continuacin del bit
de signo, deber expresarse en complemento a dos. Al
realizar la conversin: el valor absoluto de -97 10 es |-9710| =
9710. Que en binario es: 1100001 2, y el complemento a uno de
11000012 es C1(1100001) = 0011110 2, le sumamos uno para
obtener el complemento a dos: 0011110 2 + 00000012 =
00111112;

Colocar todo junto, el nmero -97 10 en binario con formato de


Complemento a dos es: 100111112. Donde el 1 en el bit ms
significativo indica un nmero negativo, y 00111112 es el
significando en complemento a dos del valor absoluto del
nmero.

Para el caso inverso, dado un nmero binario en Complemento a


dos, por ejemplo, 101101012, procedemos a:
1. Analizar el bit ms significativo, que siendo un 1 indica que el
nmero es negativo;

2. Convertir el significando a la base deseada, por ejemplo, en

decimal, tomando en cuenta que: el valor obtenido est en


valor absoluto, que la magnitud real estar dada por el bit de
signo obtenido antes, y que en caso de ser bit de signo
negativo (como es el caso) se deber obtener el complemento
a dos: C2(0110101) = C1(0110101) + 0000001 2, luego
C1(0110101) = 10010102, y al sumarle 1, 10010112 = |7510|.
Siendo que el bit de signo es 1, el nmero real es -75 10. Si el
bit de signo fuese 0, el nmero hubiese sido 0110101 2 = +5310
(sin complementar a dos).
Desventajas de la representacin en Complemento a dos
Siguiendo con el ejemplo de n = 8 (8 bits).

Posee un rango asimtrico: los nmeros van del +127 10


011111112, pasando por el +010, 000000002. Y aqu aparece la
primera diferencia, el 111111112, ya no es -010 como en la
representacin anterior, sino que es -1 10, y al llegar al
100000002 nos encontramos con que el complemento a dos
de 100000002 es 100000002, el mismo nmero!. Por
convencin, se asigna a este nmero particular el valor -128 2
(para 8 bits). Luego, en forma general, para n-bits, el rango
(en decimal) para Complemento a dos es (-2n-1; 2n-1-1).

Ventajas de la representacin en Complemento a dos


Siguiendo con el ejemplo de n = 8 (8 bits).

No posee doble representacin del cero.


Permite operar aritmticamente.

Das könnte Ihnen auch gefallen