41
Curso Circuitos Digitales I Sesión 2 Prof. José Edinson Aedo Cobo, Msc. Dr. Eng. E-mail: [email protected] Departamento de Ingeniería Electrónica Grupo de Microelectrónica - Control Universidad de Antioquia

Curso Circuitos Digitales I Sesión 2

Embed Size (px)

DESCRIPTION

Curso Circuitos Digitales I Sesión 2. Prof. José Edinson Aedo Cobo, Msc. Dr. Eng . E-mail: [email protected] Departamento de Ingeniería Electrónica Grupo de Microelectrónica - Control Universidad de Antioquia. Sistemas numéricos y métodos de conversión. - PowerPoint PPT Presentation

Citation preview

Page 1: Curso   Circuitos Digitales I Sesión 2

Curso Circuitos Digitales ISesión 2

Prof. José Edinson Aedo Cobo, Msc. Dr. Eng.

E-mail: [email protected]

Departamento de Ingeniería ElectrónicaGrupo de Microelectrónica - Control

Universidad de Antioquia

Page 2: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos y métodos de conversión

El sistema posicional (para expresar cantidades)

Sistema decimal (base 10, se utilizan 10 símbolos: 0..9): ejemplo el número 953.78

(953.78)10= 9 x102 + 5 x101 + 3 x100 + 7 x10-1 + 8 x10-2

Sistema binario (base 2): ejemplo el número 1011.11

(1011.11)2= 1 x23 + 0 x22 + 1 x21 + 1 x20 + 1 x2-1 + 1 x2-2

= 8 + 0 + 2 + 1 + 0,5 + 0,25 = (11.75)10

Se emplean 2 dígitos (símbolos): 0,1 ( # símbolos = Base)

Page 3: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos y métodos de conversión

Generalización del sistema posicional:

Sistema en base r :

Se deben usar r símbolos o coeficientes.

Sea el número (a4a3a2a1a0.a-1a-2a-3) en base r:

(a4a3a2a1a0.a-1a-2)r = a4 x r4+ a3 x r3+ a2 x r2+ a1 x r1+ a0 x r0+ a-1 x r-1+ a-2x r-2

ai son los coeficientes (dígitos) donde 0≤ ai ≤ r-1

Page 4: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos y métodos de conversión

Ejemplos: sistema en base ocho (octal):

Símbolos: 0,1,2,3,4,5,6,7

Ejemplo (147.3)8

(147.3)8 = 1 x82 + 4 x81 + 7 x80 + 3 x8-1 = 64 + 32 + 7 + 3/8 = 103.37510

Page 5: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos y métodos de conversión

Ejemplos: sistema hexadecimal (base 16):

Símbolos (16): 0,1,2,3,4,5,6,7, 8, 9, A, B, C, D, E, F

Ejemplo (A2F)16

para encontrar el equivalente en el sistema decimal los símbolos

deben expresarse en el sistema decimal, luego considerando:

A = 10, B= 11, C= 12, D=13, E= 14, F=15 tenemos:

(A2F)16 = 10 x162 + 2 x161 + 15 x160 = 2560 + 32 + 15 = 260710

Page 6: Curso   Circuitos Digitales I Sesión 2

Taller en clase (40 minutos)

Procedimientos para realizar las operaciones suma, resta, multiplicación y división de números en los siguientes sistemas: • Binario• Octal• Hexadecimal

Siguiendo el material suministrado establezca los procedimientosPara realizar las operaciones. Revisar los ejemplos suministrados para cada caso.

Nota: considere las tablas de multiplicar suministradas para el sistema octal y hexadecimal en los ejercicios de multiplicación.

Page 7: Curso   Circuitos Digitales I Sesión 2

Representación de números con signo

La forma más simple: Utilizar un digito llamado dígito de signo

Se puede escribir el número con signo en el formato de magnitud y signo (sm) en la base r, de la siguiente forma:

Ejemplo: N= -(13)10 sería (1, 1101)2sm y (9, 13)10sm

S Representación de la magnitud

Dígito de signo

N= (san-1 ….a0.a-1 a-2..a-m)rsm

s= 0 si N es positivo

s= r si N es negativo

Page 8: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos complementarios

Son útiles para realizar operaciones con números con signo.

Tipos de sistemas numéricos:

• Complemento a una base (r): [N]r de un número (N)r se calcula:

[N]r = rn-(N)r

El número positivo más grande (escala positiva total) = rn-1-1 El número negativo más pequeño (escala total negativa)=-rn-1

Ejemplo:

Sea (N)2= (01100101)2 (r =2 y n= 8) [01100101]2 = ?

n: número de dígitos

r : es la base

Page 9: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos complementarios

Ejemplo (solución):

[01100101]2 = 28 – (01100101)2 = (100000000)2 – (01100101)2

= (10011011)2

Nótese: 28 = (100000000)2

dígito adicional 8 dígitos 8 dígitos

Luego: [N]2 + (N)2 = 2n – (N)2 + (N)2 = 0 (n dígitos) + (acarreo)

[N]2 + (N)2 = 0 o sea que [N]2 = -(N)2

[N]2 se puede usar para representar números negativos !!

Page 10: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos complementarios

Ejemplo: sea (N)2= (11010100)2

[N]2 = 28 – (11010100)2 = (100000000)2 – (11010100)2

= (00101100)2

Ahora: (N)2 + [N]2 = 0

11010100 + 00101100

1 00000000

acarreo

Nótese que: [[N]2]2 = (N)2

Verificarlo !

Page 11: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos complementarios

Ejercicio: Determinar el complemento a dos de:

(N)2 = (10110)2 para n = 8

Ejercicio: Determinar el complemento a 10 de (40960)10

Page 12: Curso   Circuitos Digitales I Sesión 2

Algoritmos para calcular [N]r a partir de (N)r

Algoritmo 1:

1. A partir de dígito menos significativo se copian los dígitos de (N)r hasta encontrar el primer digito i distinto de cero ese dígito se reemplaza por r - ai

2. A partir de esa posición los dígitos aj siguientes se remplazan

por (r-1) – aj hasta llegar el dígito más significativo

Algoritmo 2:

3. Reemplazar cada dígito de aK de (N)r por (r-1)-ak

4. Sumarle 1 al resultado

Page 13: Curso   Circuitos Digitales I Sesión 2

Algoritmos para calcular [N]r a partir de (N)r

Ejercicio: Encontrar el complemento a 2 de (11010100)2

Nótese que r-1 = 2-1 =1

Algoritmo 1 Algoritmo 2

1 (-----100) (00101011) + 1

2 (00101100) (00101100)

Page 14: Curso   Circuitos Digitales I Sesión 2

Algoritmos para calcular [N]r a partir de (N)r

Ejercicios:

1. Encontrar el complemento a 10 de (40960)10

2. Encontrar el complemento a 2 de (1100101)2

Page 15: Curso   Circuitos Digitales I Sesión 2

Sistema numérico de complemento a 2

• Los números positivos se representa por magnitud y signo ( se utiliza el bit 0 a la izquierda para representar el signo positivo).

• Los números negativos se representan con el complemento a 2 del número positivo correspondiente.

Notación: (N)2cns

De esta manera:

N= +(an-2 ….a0) =(0, an-2 ….a0 )2cns Con 0≤ N ≤ 2n-1 -1

Si N = (an-1 ….a0) -N se representa por el complemento a 2

de N o sea [N]2 con -1 ≥ - N ≥ - 2n-1

Page 16: Curso   Circuitos Digitales I Sesión 2

Sistema numérico de complemento a 2

Ejemplos:

Dado (N)2 = (1100101)2 determinar +(N) y –(N) con n= 8. El caso positivo: +(N)2 = (0, 1100101)2cns

El caso negativo: -(N)2 =[0, 1100101]2 = (1, 0011011)2cns

se utiliza una coma para identificar el bit de signo

Page 17: Curso   Circuitos Digitales I Sesión 2

Sistema numérico de complemento a 2

Ejercicios:

• Determinar el complemento a 2 de +-(110101)2 para n=8.

• Determinar el complemento a 2 de –(13)10

• Determinar el numero decimal representado por N=(1,1111010)2cns

Page 18: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

La utilización de complemento a 2 facilita la implementación física (menos puertas lógicas)

La operación:

A – B se puede calcular como A + (-B)

Los números se pueden representar en el intervalo:

-2n-1≤ N ≤ 2n-1 -1

Donde n es el número de bits para representar el número.Si una operación aritmética produce un resultado por fuera de este intervalo se dice que se presenta una condición de desbordamiento.(no es un resultado válido).

Page 19: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 1: Calcular A = B + C donde B y C son enteros positivos

O sea: (A)2 = (B)2 + (C)2

Como: 0≤ B ≤ 2n-1 -1 y 0≤ C ≤ 2n-1 -1 0≤ A ≤ 2n-1 -1 + 2n-1 -1

Luego: 0≤ A ≤ 2n- 2

Se presentara condición de desbordamiento cuando el resultado: 2n-1≤ A ≤ 2n- 2 ( el n-ésimo bit será siempre 1 mostrando el desbordamiento)

Page 20: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 1: Ejemplo: sumar +(1001)2 y +(0101)2 usando aritmética a dos de 5 bits

+(1001)2 = (0, 1001)2cns 0 1 0 0 1 +(0101)2 = (0, 0101)2cns + 0 0 1 0 1

0 1 1 1 0

El bit de signo es “0” el resultado es correcto: (0, 1110)2cns = +(14)10

Page 21: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 1: Ejemplo: sumar +(1100)2 y +(0111)2 usando aritmética complemento a dos de 5 bits

+(1100)2 = (0, 1100)2cns 0 1 1 0 0 +(0111)2 = (0, 0111)2cns + 0 0 1 1 1

1 0 0 1 1

El bit de signo es “1” el resultado es incorrecto: (1, 0011)2cns = -(1101)2 = -(13)10

Observación: existe desbordamiento. Se requieren más bits para expresar el resultado (19)10

el máximo valor que se puede expresar: (0, 1111)2cns

Page 22: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 2: Calcular A = B - C donde B y C son enteros positivos

O sea: (A)2 = (B)2 + (-(C))2 (A)2 = (B)2 + [C]2

Luego: A = (B)2 + [C]2 = (B)2 + 2n – (C)2 = 2n + (B – C)2

Nótese: 2n es el bit de acarreo y si B ≥ C siempre habrá acarreo (A)2 = (B)2 + [C]2 y el acarreo se descarta.

Si B < C (B-C) < 0 luego: A = 2n - (C – B)2 = -(C-B)2

no hay acarreo [C-B] 2

Page 23: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 2: Si B y C son positivos B – C siempre será menor que A, lo cual significa que no habrá desbordamiento

Ejemplo: calcular (12)10 – (5)10 , en complemento a 2 usando 5 bits.

como: (12)10 =+(1100)2 y -(5)10 =-(0101)2

+(1100)2 = (0, 1100)2cns 0 1 1 0 0-(0101)2 = (1, 1011)2cns + 1 1 0 1 1

1 0 0 1 1 1

Se descarta el acarreo, el bit de signo es cero, resultado: +(7)10

hay acarreo

Page 24: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 2: Ejemplo: calcular (5)10 – (12)10 , en complemento a 2 usando 5 bits

-(12)10= -(1100)2 y (5)10=+(0101)2

+(0101)2 = (0, 0101)2cns 0 0 1 0 1 -(1100)2 = (1, 0100)2cns + 1 0 1 0 0

1 1 0 0 1

no hay acarreo

No hay acarreo, el bit de signo es uno (correcto), resultado: -(7)10

Page 25: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2 Ejemplo: calcular (0,0111)2cns – (1,1010)2cns

Para usar un sumador se nota que –(1, 1010) = (0,0110)

(0,0111)2cns (0, 0111)2cns 0 0 1 1 1 -(1,1010)2cns (0, 0110)2cns + 0 0 1 1 0

0 1 1 0 1

No hay acarreo, el bit de signo es cero (correcto), resultado: +(13)10

Page 26: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2 Ejemplo: calcular (0,0111)2cns – (1,1010)2cns

Para usar un sumador se nota que –(1, 1010) = (0,0110)

(0,0111)2cns (0, 0111)2cns 0 0 1 1 1 -(1,1010)2cns (0, 0110)2cns + 0 0 1 1 0

0 1 1 0 1

No hay acarreo, el bit de signo es cero (correcto), resultado: +(13)10

Nota: -[A] =[[A]2]2 = 2n –[A]2 = 2n – (2n –A) = A

Page 27: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 3: Calcular: A= - B – C = -(B+C) = [B + C]2

A= (-B) + (-C) = [B]2 + [C]2

A= 2n – (B)2 + 2n –(C)2

A = 2n + [B+C]2

Se consideran 2 posibilidades: • Si -2n-1≤ A y se descarta el acarreo el resultado será

correcto.

• Si A <-2n-1 Habrá desbordamiento y el bit de signo es incorrecto – aparece como positivo (el resultado es incorrecto).

Page 28: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 3: Ejemplo: calcular (-(9))10 + (-(5))10 , en complemento a 2 usando 5 bits

-(9)10= -(1001)2 y -(5)10=-(0101)2

-(1001)2 = (1, 0111)2cns 1 0 1 1 1 -(0101)2 = (1, 1011)2cns + 1 1 0 1 1

1 1 0 0 1 0

hay acarreo

hay acarreo (se descarta), el bit de signo es uno (correcto), resultado: -(14)10

Page 29: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2

Caso 3: Ejemplo: calcular (-(12))10 + (-(5))10 , en complemento a 2 usando 5 bits

-(12)10= -(1100)2 y -(5)10=-(0101)2

-(1100)2 = (1, 0100)2cns 1 0 1 0 0 -(0101)2 = (1, 1011)2cns + 1 1 0 1 1

1 0 1 1 1 1

hay acarreo

hay acarreo (se descarta), el bit de signo es cero (incorrecto), resultado: +(15)10 el valor correcto debe ser –(17)10

Page 30: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2 Ejercicio: Sea A = (25)10 y B= -(46)10

Calcular: A + B, A- B, B – A y –A-B, usando la suma

Page 31: Curso   Circuitos Digitales I Sesión 2

Aritmética en complemento a 2

Suma de números en complemento a 2 Ejercicio: Solución: Como A = +(25)10 =(0,0011001)2cns

B= -(46)10 =-(0,0101110)2cns =(1, 1010010)2cns

Page 32: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos con complemento disminuido en una base

El complemento disminuido de un número (Nr) en una base se define: [N]r-1 = rn-(N)r – 1

Caso especial: complemento disminuido en una base para los números binarios (se llama: complemento a a 1): [N]2-1 = 2n-(N)2 – 1

Ejemplos: encontrar el complemento a 1 de (01100101)2

[N]1 = 28 – (01100101)2- 1 = (100000000)2- (01100101)2- (00000001)2

=(10011011)2 - (00000001)2= (10011010)2

n: número de dígitos

r : es la base

Page 33: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos con complemento disminuido en una base

Ejercicios: -Encontrar el complemento a 1 de (11010100)2

Resp: (00101011)2

- Encontrar el complemento a 9 de (40960)10

Resp: (59039)10

Page 34: Curso   Circuitos Digitales I Sesión 2

Sistemas numéricos con complemento disminuido en una base

Algoritmo para encontrar el complemento disminuido a una base:

Reemplazar cada digito ai de (N)r por r-1-ai

Caso especial: si r=2 basta reemplazar cada bit por su complemento.

Ejercicio: Aritmética de complemento disminuido a una base. Qué es el acarreo final circular ? Analizar los mismos casos de las sumas , que se analizaron para el complemento a 2, con el complemento 1.

Page 35: Curso   Circuitos Digitales I Sesión 2

Códigos de computadoras

Son conjuntos de símbolos que se utilizan para representar Información.

Ejemplo el: Semáforo: símbolos: verde, amarillo, rojo

Cada tiene un significado (representa una información)

Estudiaremos tres tipos de códigos:

- Códigos numéricos. - Códigos de caracteres - Códigos para detección de errores.

Page 36: Curso   Circuitos Digitales I Sesión 2

Códigos de computadoras

Códigos numéricos: representan números.

Ejemplos: Números de puntos fijo Números de puntos flotante.

Números de punto fijo:

Entero con signo, Fracciones con signo.

.

Page 37: Curso   Circuitos Digitales I Sesión 2

Códigos de computadoras

Entero de punto fijo:

.

Signo Magnitud punto implícito Fracción de punto fijo:

signo Magnitud punto implícito

Bit signo 0: Representa un número positivo Bit signo 1: Representa un número negativo ( en complemento a 2)

.

n-1 n-2 n-3 …………… 2 1 0

0 1 2 …………… n-2 n-2 n-1

.

Page 38: Curso   Circuitos Digitales I Sesión 2

Códigos de computadoras

Representación con Exceso o Sesgada:

Una representación con exceso –K de un código C se forma sumando el valor de K a la palabra de código C.

Ejemplo: Sea el número [0111]2 (en complemento a 2) de cuatro bits. La representación en exceso 8 sería:

Se suma (1000)2 (exceso 8) al código:

[0111]2 + (1000)2 exceso 8: (1111)

.

Page 39: Curso   Circuitos Digitales I Sesión 2

Códigos de computadoras

Números en punto flotante:

Tienen la forma: N = M x r E

mantisa(significado) Exponente(característica)

Exponente: es un entero fijoMantisa: es un número de punto fijo.

Observe que: +-(an-1 …a0. a-1 a-m)r = +-(.an-1….a-m)r x rn

La mantisa generalmente se codifica en magnitud y signo:

signo=0 Positiva y signo=1 negativa

.

Page 40: Curso   Circuitos Digitales I Sesión 2

Códigos de computadoras

Números en punto flotante:

El exponente con frecuencia se codifica en complemento a 2 conExceso K. Generalmente K es: 2e-1 donde e es el númerode bits.

Osea: -2e-1≤ E ≤ 2e-1 -1 Sumando el sesgo K

0 ≤ E + 2e-1 ≤ 2e -1

Luego el valor sesgado de E varía entre 0 y 2e -1 E = (be-1, be-2 ….b0) exceso -K

Representación: se combina M y E: N=(SM be-1 be-2 … b0 an-1 … a-m)r =(1)SM x(.an-1 … a-m)r x rE

.

Page 41: Curso   Circuitos Digitales I Sesión 2

Codificación BCD ( códigos de caracteres)

Decimal codificado en binario

Sirve para representar dígitos del 0 al 9. Cada posición de bit en el código tiene un valor o peso numérico fijo asociado a ella.

BCD: utiliza 4 bits y los pesos son los mismos que en un entero binario de 4 bits.

El código BCD de un digito decimal, es igual al equivalente binario del número, con ceros de relleno.

0: 0000 3: 0011 6: 0110 9: 1001 1: 0001 4: 0100 7: 0111 10: XXXX 2: 0010 5: 0101 8: 1000

Ejemplo: (9750)10 = (1001011101010000)BCD

.