martes, 17 de noviembre de 2009

4.3 REPRECENTACION INTERNA ALU

Para la representación de los datos numéricos hay que tener en cuenta que las operaciones de la ALU (Unidad aritmético-lógica, encargada de realizar las operaciones matemáticas en el procesador) están sujetas a las siguientes restricciones:
Los registros son de tamaño fijo.
Puede existir desbordamiento.
Presentan problemas con los números negativos.
Es necesario, por ello, introducir nuevas formas de numeración basadas, por supuesto, en la representación binaria. Al conjunto de estas representaciones y su funcionamiento se le denomina aritmética binaria. En aritmética binaria hay que distinguir entre representación para números enteros y representación de números reales ya que cada uno tiene sus características propias.



Representación de números enteros
Las computadoras utilizan cuatro métodos para la representación interna de números enteros (positivos y negativos); éstos son los siguientes:
Módulo y signo
Complemento a 1
Complemento a 2
Exceso a 2^n-1
Estas representaciones de números utilizan el sistema binario y se considera que tenemos un número limitado de bits para cada dato numérico. Este número de bits disponibles lo representamos por n. También se pueden representar mediante estos métodos números reales.



Módulo y signo
En este sistema de representación, el bit que está situado más a la izquierda representa el signo, y su valor será 0 para el signo + y 1 para el signo -. El resto de bits (n-1) representan el módulo del número. Suponemos en principio que los números no poseen parte decimal, por lo que el punto se supone implícito a la derecha.
Por ejemplo, supongamos que disponemos de 8 bits, y queremos representar los números 10 y –10. Veamos cuáles son sus representaciones.



Se denomina rango de representación en un método determinado al conjunto de números representables en el mismo. Para módulo y signo el rango de representación es, si se disponen de n bits:

-2 ^(n-1) + 1 <= X <= 2 ^(n-1) – 1


Para el caso de n = 8 bits, el rango de representación va desde –127 a 127.


La ventaja que presenta este sistema frente a otros es la de poseer rango simétrico (igual cantidad de números positivos que negativos), mientras que su mayor inconveniente es el de poseer dos representaciones para el número 0. El cual se representa tanto con un signo positivo (0) como con uno negativo (1) y el resto de los bits en 0.



Complemento a 1
Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0 para el signo + y el 1 para el signo -. Para los números positivos, los n-1 bits de la derecha representan el módulo (igual que en el sistema anterior). El negativo de un número positivo se obtiene complementando todos sus dígitos (cambiando ceros por uno y viceversa) incluido el signo.
Veamos la representación en complemento a 1 de los números 10 y –10 para el caso de n=8 bits.




Para el complemento a 1 el rango de representación es, si se disponen de n bits:

-2 ^ (n-1) + 1 <= X <= 2 ^ (n-1) – 1


Para el caso de n = 8 bits, el rango de representación va desde –127 a 127.

La ventaja que presenta este sistema frente a otros es la de poseer rango simétrico (igual cantidad de números positivos que negativos), mientras que su mayor inconveniente es el de poseer dos representaciones para el número 0. El cual se representa tanto con todos 0 como con todos los bits en uno.




Complemento a 2
Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0 para el signo + y el 1 para el signo -. Para los números positivos, los n -1 bits de la derecha representan el módulo (igual que en los dos sistemas anteriores). El negativo de un número positivo se obtiene en dos pasos:


Primer paso: se complementa el número positivo en todos sus bits (cambiando ceros por uno y viceversa), incluido el bit de signo, similar a complemento a 1.
Segundo paso: al resultado obtenido se le suma 1 (en binario), despreciando el último acarreo si existiera.

No hay comentarios:

Publicar un comentario