Descargar

Introducción al estudio de los circuitos lógicos y sistemas numéricos (página 2)


Partes: 1, 2, 3

Partes: 1, , 3

RESTA EN COMPLEMENTO A DOS.

La resta en complemento a dos resuelve el problema de esta operación con los signos. Por ejemplo, el sustraendo negativo y minuendo positivo produce un resultado positivo; la resta de dos números A y B negativos puede dar resultados positivos o negativos. Para realizarla se procede con la fórmula definida de la siguiente forma:

(Ec.1.5); La diferencia de dos números, A menos B es equivalente a la suma de A más el complemento a dos de B.

I) Resta de dos números positivos. El resultado puede presentar varias formas que se determinan con los siguientes casos:

(A mayor o igual que B):

De está manera, el resultado queda en forma binaria normal y es igual a valor del 17vo bit no se toma en cuenta para el resultado. En decimal A=2375110 y B=1518610; entonces A-B=856510 = 00100001011101012

(A menor que B):

De está manera, el resultado es negativo y queda en forma de complemento a dos, el acarreo del 17vo bit no se toma en cuenta. Sin embargo, para saber el verdadero valor, el resultado se debe complementar a dos. Este es un número binario negativo de 16 bits, lo cual tiene un valor de: . En decimal la operación se efectúa: A = 774810 y B = 3115110 entonces el resultado es A-B = -2340310.

II) RESTA DE DOS NÚMEROS NEGATIVOS Y DE DISTINTO SIGNO. El resultado puede presentar varias formas que se determinan aplicando los mismos casos de la suma en formato de 16 bits.

Tabla 1. 3. Resumen de las operaciones suma y resta binaria con los datos A y B, utilizando el formato de 16 bits.

Operación

Acarreo

17vo bit

Acarreo 16vo bit

Resultado

Observaciones

A+B

A>0; B>0

0

0

Positivo en binario normal

Chequear para no exceder el formato de 16 bits.

A+B

A>0; B<0

(**)

0

1

Negativo en complemento a dos

Complementar los 16 bits para obtener el verdadero valor.

A+B

A<0; B>0

(**)

1

0

Positivo en binario normal

El 17vo bit no se toma en cuenta para el resultado.

A+B

A<0; B<0

1

1

Negativo en complemento a dos

Complementar los 16 bits para obtener el verdadero valor,

Chequear para no exceder el formato de 16 bits y el 17vo bit no se toma en cuenta.

A-B

A>0; B>0

A>=B

1

0

Positivo en binario normal

El 17vo bit no se toma en cuenta para el resultado.

A-B

A>0; B>0

A<B

0

1

Negativo en complemento a dos

Complementar los 16 bits para obtener el verdadero valor.

A-B

A>0; B<0

0

0

Positivo en binario normal

Chequear para no exceder el formato de 16 bits.

A-B

A<0; B>0

 

1

1

Negativo en complemento a dos

Complementar los 16 bits para obtener el verdadero valor,

Chequear para no exceder el formato de 16 bits y el 17vo bit no se toma en cuenta.

A-B

A<0; B<0

(**)

0

1

Negativo en complemento a dos o positivo normal

Complementar los 16 bits para obtener el verdadero valor o dejarlo igual. Todo depende de la magnitud de A y B.

 

  

(**) Se producen resultados negativos o positivos dependiendo del mayor entre A y B.

 

 

REPRESENTACIÓN NUMÉRICA EN COMA FIJA Y COMA FLOTANTE.

Estas representaciones son utilizadas por las computadoras para procesar cálculos numéricos con formatos grandes. Consiste en una cadena de bits que guardan relación con la notación científica, y pueden representar números enteros y números reales tanto negativos como positivos. Los formatos más conocidos son la coma fija y la coma flotante, también denominados punto fijo y punto flotante respectivamente. Antes de comenzar a describir estos formatos se debe entender el funcionamiento de un caso especial de complemento a dos el cual se denomina representación con exceso o sesgada.

REPRESENTACIÓN CON EXCESO O SESGADA.

Son representaciones para números con signo que eliminan el centrado de la representación básica en complemento a dos. Por ejemplo para indicar números decimales desde un valor numérico -P10 hasta +P10 es necesario desplazar el equivalente binario (-P10 )2 sumando P2 unidades positivas. Esta cantidad se conoce como exceso o sesgo. Las representaciones con exceso se utilizan, con frecuencia, para representar los exponentes de los números con coma flotante. En la tabla 1.4 se pueden observar las representaciones desde -810 hasta +810 en complemento a dos y en código con exceso donde P2 = 10002. En complemento a dos -810 es igual a 10002. Sin embargo, la representación del mismo número negativo en código desplazado con exceso 8 es de 00002; es de hacer notar que solamente ocurre un cambio en el bit más significativo (MSB: Most Significative Bit) del código con exceso. Por lo tanto, la representación de cualquier código con exceso -P, para indicar números negativos, se forma sumando el valor de P a cada palabra o número del código.

COMPARACIÓN DE CÓDIGOS EN COMPLEMENTO A DOS Y EXCESO 8.

DECIMAL

COMPLEMENTO A DOS

EXCESO 8

+7

0111

1111

+6

0110

1110

+5

0101

1101

+4

0100

1100

+3

0011

1011

+2

0010

1010

+1

0001

1001

0

0000

1000

-1

1111

0111

-2

1110

0110

-3

1101

0101

-4

1100

0100

-5

1011

0011

-6

1010

0010

-7

1001

0001

-8

1000

0000

REPRESENTACIÓN NUMÉRICA EN COMA FIJA.

Los números fraccionarios y con signo se pueden representar mediante la coma fija; ejemplo de esto se puede apreciar en la tabla 1.2 y la figura 1.3(a) donde se tiene la representación de números enteros con signo en formato de 16 bits. No obstante, existe otra representación para coma fija, la cual consiste en fijar la posición de la coma después del bit de signo; ver figura 1.3(b) respectivamente. Los restantes bits deben indicar la magnitud fraccionaria.

REPRESENTACIÓN NUMÉRICA EN COMA FLOTANTE.

Los números representados en coma flotante tienen la misma forma que la notación científica. La representación tiene la siguiente forma

(Ec.1.6); donde M es la mantisa o significado y se representa en coma fija, este valor indica la cantidad de dígitos significativos que tiene el número N de coma flotante. El valor E es el exponente o característica, también de coma fija; está dado en formato de complemento a dos con exceso y b es la base del sistema. En forma general, de la Ec.1.1 se puede obtener la representación con signo de coma fija y está dada por: , ahora sustituyendo por el formato de coma fija, dada en la figura 1.3(b), se obtiene la forma de coma flotante

(Ec.1.7). La fórmula general queda del siguiente modo;

(Ec.1.8)

donde bs es el bit de signo, e es el número de bits del exponente con ; esto es equivalente a escribir E con formato de exceso en base dos de la siguiente manera; , por lo tanto,

Existen varias formas de representar los formatos de coma flotante; sin embargo, los que más se utilizan son los siguientes:

En las figuras 1.4(a) y 1.4(b) se definen los formatos en coma flotante para datos numéricos reales cortos y largos utilizados en los computadores.

La tabla 1.5 muestra un resumen de los formatos de precisión sencilla y doble (corto y largo) respectivamente; usados en los sistemas de computación.

FORMATO

TOTAL DE BITS

BITS DE LA MANTISA

BITS DEL EXPONENTE

EXCESO DEL EXPONENTE

Estándar IEEE

    

754-1985

    

Precisión sencilla

32

24

8

128

Doble Precisión

64

53

11

1024

IBM 360

    

Precisión sencilla

32

24

7

64

Doble precisión

64

56

7

64

DEC VAX 11/780

    

Formato F

32

24

8

128

Formato D

64

56

8

128

Formato G

64

53

11

1024

Tabla 1.5. Formatos comunes para números representados en coma flotante.

Ejemplo: Escribir en formato de coma flotante los números: a) 11011101,11012

b) 0,00001110101012

Solución (a): Se debe llevar a la forma ; primero hay que hallar la mantisa con la Ec.1.7 y luego el exponente E con exceso;

M=+(0,1101110111010)2

E=+810=+(1000)2; si el bit de signo es positivo entonces E'=01002. En este caso hay que sumarle al exponente un exceso de 1610; E= 010002+100002 = 110002

La solución final queda de la siguiente forma:

bs

Exponente E

Mantisa M

0

11000

1101110111010

Solución (b): Se debe llevar a la forma ; primero hay que hallar la mantisa con la Ec.1.7 y luego el exponente E con exceso;

M=+(0,111010101)2

E=-410=-(100)2; si el bit de signo es negativo entonces E'=11002. En este caso hay que sumarle al exponente un exceso de 810; E= 11002+10002 = 01002

La solución final queda de la siguiente forma:

bs

Exponente E

Mantisa M

0

0100

111010101

 

CÓDIGOS DE NUMERACIÓN, ALFANUMÉRICOS Y DE ERRORES.

Los códigos en los sistemas digitales se clasifican en tres tipos: códigos numéricos, códigos alfanuméricos y códigos detectores y correctores de errores. El objetivo de los códigos es simplificar la comunicación entre los distintos circuitos digitales, normalizar el funcionamiento de los mismos y detectar posibles fallas de datos para su posterior corrección.

1.5.1 Códigos numéricos.

Los más utilizados, en circuitos digitales combinacionales son el código BCD, Exceso 3, Aiken o 2421, 5421, Biquinario, Dos de Cinco. Existen otros códigos de tipo secuencial cíclicos, dos de ellos es son código Jhonson y el código Gray. En la tabla 1.6 se describen algunos de ellos con sus respectivos equivalentes decimales.

Decimal

BCD

Exceso 3

2421

5421

Biquinario

Dos de cinco

Gray

0

0000

0011

0000

0000

0100001

00011

0000

1

0001

0100

0001

0001

0100010

00101

0001

2

0010

0101

0010

0010

0100100

01001

0011

3

0011

0110

0011

0011

0101000

10001

0010

4

0100

0111

0100

0100

0110000

00110

0110

5

0101

1000

1011

1000

1000001

01010

0111

6

0110

1001

1100

1001

1000010

10010

0101

7

0111

1010

1101

1010

1000100

01100

0100

8

1000

1011

1110

1011

1001000

10100

1100

9

1001

1100

1111

1100

1010000

11000

1101

10

0001 0000

0100 0011

0001 0000

0001 0000

0100010 0100001

00101 00011

1111

11

0001 0001

0100 0100

0001 0001

0001 0001

0100010 0100010

00101 00101

1110

12

0001 0010

0100 0101

0001 0010

0001 0010

0100010 0100100

00101 01001

1010

13

0001 0011

0100 0110

0001 0011

0001 0011

0100010 0101000

00101 10001

1011

14

0001 0100

0100 0111

0001 0100

0001 0100

0100010 0110000

00101 00110

1001

15

0001 0101

0100 1000

0001 1011

0001 1000

0100010 1000001

00101 01010

1000

Tabla 1.6. Equivalencia desde cero hasta quince de algunos códigos numéricos más utilizados.

Código BCD.

(Binario Codificado en Decimal): La conversión con el sistema decimal se realiza directamente, en grupos de cuatro bits por cada dígito decimal con ponderación 8421. Este código tiene aplicación en visualizadores (displays) hechos con diodos led o LCD, los cuales poseen previamente convertidores que transforman el grupo de cuatro bits BCD en otro especial, llamado 7 segmentos.

Por ejemplo, para transformar el número decimal 7890510 en código BCD se toman los equivalentes en grupos de cuatro bits cada uno; ver tabla 1.6:

7

8

9

0

510

 

0111

1000

1001

0000

0101BCD

Resp: 7890510 = 0111 1000 1001 0000 0101BCD

Para realizar la equivalencia del BCD con el sistema binario se debe tomar la precaución de realizar primero la transformación decimal y posteriormente la conversión al BCD.

Ejemplo: Transformar en BCD los siguientes números:

a) 10111011111112; b) 5F3C,B16

Solución (a): 10111011111112 = 601510 = 0110 0000 0001 0101BCD

Solución (b): 5F3C,B16 = 24380,687510 = 0010 0100 0011 1000 0000, 0110 1000 0111 0101BCD

SUMA EN BCD.

La suma en BCD puede dar como resultado un número no perteneciente al código. Por ejemplo, al sumar los números BCD 1000 + 0001 el resultado es 1001, este número también pertenece al código; sin embargo, cuando se suman 0111 +1000 el resultado es 1111, este número no pertenece al código BCD y su valor equivalente es quince unidades.

Cuando suceden estos casos es necesario sumar un factor de corrección que depende del rango donde se encuentre el resultado de la suma. La tabla 1.7 muestra los valores del factor de corrección con su respectivo rango. Para el rango binario desde diez (10102) hasta diecinueve (100112) el factor de corrección es seis 01102; este factor se duplica en forma proporcional del mismo modo que aumenta la decena en el resultado. Por lo que se debe aplicar la fórmula donde n es igual al valor binario de la decena del resultado. El factor de corrección se debe aplicar siempre y cuando el resultado de la suma sea mayor o igual a diez. Del mismo modo, la suma debe realizarse en binario.

Factor de corrección

Binario (Fc)2

Valor decimal de rango

Valor decimal de la decena (n)

Factor de corrección Decimal (Fc)10

0110

(10 ~ 19)

1

6

1100

(20 ~ 29)

2

12

10010

(30 ~ 39)

3

18

11000

(40 ~ 49)

4

24

.

.

.

.

.

.

.

.

.

.

.

.

Fc = n2x(0110)2

(n0 ~ n9)

n

Fc = nx6

Tabla 1.7. Factores de corrección para la suma BCD.

Ejemplo. Dado los números p, q, r en código BCD, sumar: a) p + q + r, b) q + r,

c) p + q y obtener el resultado también en BCD.

p = 1000 0110 0010 0000 1001BCD; q = 0100 1001 1001 0011 0111BCD

r = 0111 1001 1000 0110 0010 0011 1001BCD

Solución (a): Los resultados que superen el 1001 hay que sumarle el factor de corrección según la tabla 1.7 y llevar el acarreo correspondiente.

Solución (b): Los resultados que superen el 1001 hay que sumarle el factor de corrección según la tabla 1.7 y llevar el acarreo correspondiente.

Solución (c): Los resultados que superen el 1001 hay que sumarle el factor de corrección según la tabla 1.7 y llevar el acarreo correspondiente.

CÓDIGO EXCESO 3.

Es un código igual al BCD, sin embargo se deben añadir tres unidades a este para transformarlo en exceso 3.

CÓDIGO AIKEN O 2421.

La ponderación de este código es diferente al BCD, para hallar su peso se debe tomar también grupos de cuatro bits, considerando los valores 2421, por dígito decimal.

Este código se conoce como autocomplementado a uno porque sus diez valores, en la tabla 1.6; se pueden formar, complementando, a partir de los primeros cinco dígitos.

CÓDIGO 5421.

La ponderación de este código es diferente al BCD, para hallar su peso se debe tomar también grupos de cuatro bits, considerando los valores 5421, por dígito decimal. Este código se forma repitiendo los cinco primeros valores de la tabla 1.6, de modo tal, que cambia solo el bit más significativo de cero a uno.

CÓDIGO BIQUINARIO.

Necesita siete bits para formarse; siempre hay dos bits en nivel alto (uno) y los restantes cinco deben estar en nivel bajo (cero). El primer bit del código, en uno, se usa para indicar si el dígito se encuentra comprendido entre 5 y 9; el segundo bit del código, en uno, señala que se encuentra en el rango de 0 a 4. La desventaja de este código es la cantidad de bits que se deben utilizar para transmitir información, siete por cada dígito. Sin embargo, tiene la ventaja de poder realizar fáciles algoritmos para el chequeo de errores de transmisión; solamente se debe detectar que hayan dos bits, en nivel uno, por cada dato. Uno de estos se debe encontrar entre los primeros dos bits y el otro en los cinco restantes que forman el dígito.

CÓDIGO DOS DE CINCO.

Este código es similar al Biquinario, pero requiere de cinco bits para el correcto funcionamiento. Dos bits deben estar en nivel alto y los otros tres en cero.

CÓDIGO GRAY.

Este código cíclico no posee una relación directa con la ponderación de los dígitos del sistema decimal. Se forma cambiando el bit menos significativo de manera continua y consecutiva. Solamente cambia un bit, y éste, debe ser el menos significativo; de manera que no se repita con alguna combinación anterior. También se puede formar obteniendo las primeras ocho combinaciones con tres bits y luego, desde la 8va combinación hay que repetir simétricamente los valores, cambiando solamente el bit más significativo de cero a uno. Por ejemplo, la 8va posición es 0100 y a continuación viene la 9na 1100; del mismo modo, la 7ma 0101 es simétrica con la 11va 1101. El código Gray tiene aplicaciones en contactos de escobillas de motores, sistemas donde solo se necesite cambiar un bit de estado cíclicamente.

La ventaja del código Gray radica en que la probabilidad de ocurrir menos errores y problemas de transición aumenta a medida que cambian mas bits de estado simultáneamente. El cambio consecutivo del código BCD desde 0111 a 1000 puede producir transiciones intermedias que originan el 1111 antes de estabilizarse en 1000. Sin embargo, el código Gray pasará desde 0111 a 0101 cambiando solamente un bit y por lo tanto, con menos posibilidad de cometer errores.

CÓDIGOS ALFANUMÉRICOS.

Estos códigos son interpretados por el computador como caracteres e indistintamente pueden representar símbolos numéricos, símbolos de control y letras. Las computadoras se comunican mediante estos códigos y los más utilizados son el código ASCII y el UNICODE.

CÓDIGO ASCII.

ASCII: American Standard Code Interchange Information. Cada caracter alfanumérico esta formado por una cadena de siete bits. Este código representa 128 símbolos diferentes entre dígitos, letras e instrucciones de control del computador. La tabla 1.xx muestra los símbolos con su respectivo valor hexadecimal. Por ejemplo, para codificar la palabra UNEXPO se procede de la siguiente forma:

1010101 1001110 1000101 1011000 1010000 1001111

U

N

E

X

P

O

55H

4EH

45H

58H

50H

4FH

 

Tabla 1.8. Código ASCII.

     

B6B5B4

    

B3B2B1B0

BIN

HEX

000

0

001

1

010

2

011

3

100

4

101

5

110

6

111

7

0000

0

NUL

DLE

SP

0

@

P

`

p

0001

1

SOH

DC1

!

1

A

Q

a

q

0010

2

STX

DC2

"

2

B

R

b

r

0011

3

ETX

DC3

#

3

C

S

c

s

0100

4

EOT

DC4

$

4

D

T

d

t

0101

5

ENQ

NAK

%

5

E

U

e

u

0110

6

ACK

SYN

&

6

F

V

f

v

0111

7

BEL

ETB

'

7

G

W

g

w

1000

8

BS

CAN

(

8

H

X

h

x

1001

9

HT

EM

)

9

I

Y

i

y

1010

A

LF

SUB

*

:

J

Z

j

z

1011

B

VT

ESC

+

;

K

[

k

{

1100

C

FF

FS

,

<

L

l

|

1101

D

CR

GS

=

M

]

m

}

1110

E

SO

RS

.

>

N

^

n

~

1111

F

SI

US

/

?

O

_

o

DEL

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente