jueves, 15 de septiembre de 2016

OPERACIONES CON SIGNO Y OPERACIONES EN CODIFICACIÓN BCD

Representación de ENTEROS POSITIVOS
BCD (binary coded decimal)
En BCD cada cifra que representa un dígito decimal (0, 1,…8 y 9) se representa con su equivalente binario en cuatro bits (nibble o cuarteto) (esto es así porque es el número de bits necesario para representar el nueve, el número más alto que se puede representar en BCD).
Por ejemplo, el número 36 codificado en BCD sería: 
0011 0110
Sumando en BCD: si se produce desbordamiento se suma a ese grupo de bits 6, osea 0110 y se propaga el overflow. Por ejemplo:

   19 =       0001         1001
   29 =       0010         1001
              ------------------
                       (1) 0010   (se suma 0110 a esta parte y se propaga el 1 al siguiente grupo)
                           0110
              ------------------
              0001          |
              0010          |
             ---(1)         |
             -------------------
              0100         1000

Representación de ENTEROS CON SIGNO
Signo y magnitud
Se reserva el MSB (more significant bit) para el signo y el resto para la magnitud (módulo)
Desventaja: doble representación del 0 y no se puede sumar/restar directamente.
Para SUMAR: primero sumar módulos y fijarse si existe overflow. después añadir el MSB que determina el signo.
Por ejemplo, con n=4bits:
+6=0 110
-6 = 1 110

suma de dos números positivos (o dos negativos):
0 110 --> módulo = 110
0 110 --> módulo = 110
Suma (módulos) = 1100 --> EXISTE OVERFLOW --> hay que aumentar en uno el número de bits
Resultado: ambos son positivos, por lo que la suma es también positiva ---> 0 1100
sumando positivos y negativos
Regla: restar al módulo del mayor el módulo del menor y después colocar símbolo.
– si el módulo del número positivo > módulo del negativo –> resultado positivo –> MSB=0
2 = 0 010
-1 = 1 001
2 - 1 = 010 - 001 = 001 ---> como resultado>0 ---> 0 001
– si el módulo del número positivo < módulo del negativo --> resultado negativo –> MSB=1
-2 = 1 010
1 = 1 001
-2 +1 = 010 - 001 = 001 ---> como resultado<0 ---> 1 001
BCD con SIGNO
También conocido como BCD empaquetado. Se almacena, en los 4LSB’s, la información del signo (
positivo=1100, negativo=1101)
Por ejemplo:
127 = 0001 0010 0111 1100
-127 = 0001 0010 0111 1101
Complemento a uno
Ca1(N)=(2^n)-N-1 siendo n el número de dígitos
N-->negado-->Ca1(N)
Problema: la duplicidad de representación del número 0
Operar: sumar el acarreo del MSB al resultado de la suma
Por ejemplo:
6 (base 10) = 0110
-6 (base 10) = 1001
Cuya suma es: 0110+1001 = 1111 y NO OVERFLOW ---> resultado = 1111 = 0000
2 (base 10) = 0010
-1 (base 10) = 1110
Cuya suma es:
0010
1110
------
(1)0000 --> se suma el acarreo=(1) al LSB---> 0001
Complemento a dos
Ca2(N) = (2^n) - N siendo n el número de dígitos
N-->negado-->+1-->Ca2(N)
Ventaja: no existe duplicidad en la representación del número 0.
Por ejemplo:
6 (base10) = 0110 (base2)
-6 (base10) = 2^4 - 6 = 16-6=10 = 1010 (base2)
bin neg +1
--> 0110 --->1001 ---> 1010
La suma de ambos es 0110+1010=0000

0 comentarios:

Publicar un comentario

 
Blogger Templates