Representación de datos y aritmética básica en sistemas digitales

Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Elect

0 downloads 59 Views 636KB Size

Story Transcript

Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA

Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti

1

Sistemas de Numeración:

Alfabeto: Símbolos utilizados

Base: Cantidad de símbolos del alfabeto Sistemas Posicionales: La posición del dígito en la tira de símbolos da un “peso” a su valor 2

Sistemas de Numeración:

Sistema binario

{0,1}

Sistema octal

{0,1,2,3,4,5,6,7}

Sistema hexadecimal

{ 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} 3

Representación decimal: Código BCD Dígito decimal

Dígito decimal codificado en binario

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

4

Representación y operaciones básicas con enteros.

5

Representación de enteros

Magnitud y signo

Utilizada en la vida diaria

Complemento a la base Complementos Complemento a la base menos 1 6

Complemento a la base menos 1 Dado un número N en base r con n dígitos, el complemento (r – 1) de N se define como ( rn – 1) – N. Ejemplo en binario: N = (01101)2 -N = (10010)2

Ventaja: Implementación muy simple Inconveniente: Doble representación del cero

Ejemplo en decimal: N = (31.479)10 -N = (68.520)10

7

Complemento a la base

Dado un número N en base r con n dígitos, el complemento a r de N se define como rn – N. Ejemplo en binario:

Ejemplo en decimal:

N = (01101)2 -N = (10011)2

N = (31.479)10 -N = (68.521)10

Es el complemento más utilizado en sistemas digitales 8

Representación del signo: Ejemplo en binario: N = (14)10 = (0 00001110)2 -N = (- 14)10 = (1 11110010)2 Utilizando complemento a 2. -N = (- 14)10 = (1 11110001)2 Utilizando complemento a 1.

Ejemplo en decimal: N = (+ 258)10 = ( 0000 0010 0101 1000 ) BCD -N = (- 258)10 = ( 1001 0111 0100 0010 ) BCD , en C10. 9

Suma en C2 A

• Caso 1: A > 0 y B > 0 S=A+B

A B S= A+B

Cout

B Sumador Binario

Resultado correcto

Sistema decimal +6 +13 +19

Cin

S

Sistema binario 0 0000110 0 0001101 0 0 0010011 10

Suma en C2 • Caso 2: A < 0 y B < 0 Resultado correcto S = (rn – A) + ( rn – B) = rn + rn – ( |A| + |B| )

A B S= A+B

Sistema decimal -6 -13 -19

Sistema binario 1 1111010 1 1110011 1 1 1101101 11

Suma en C2 • Caso 3: A < 0 y B > 0 y |A| < |B| Resultado correcto S = (rn – A) + B = rn + ( |B| - |A| )

A B S= A+B

Sistema decimal Sistema binario -6 1 1111010 +13 0 0001101 +7 1 0 0000111 12

Suma en C2 • Caso 4: A > 0 y B < 0 y |A| < |B| Resultado correcto S = A + (rn – B) = rn - ( |B| - |A| )

A B S= A+B

Sistema decimal Sistema binario +6 0 0000110 -13 1 1110011 -7 0 1 1111001 13

Sumador binario en C2 A

Cout

B

Σ Sumador Binario

Cin

S

Cuando sumamos números positivos y negativos utilizando complemento a r, se obtendrá el resultado correcto siempre, si se ignora rn. 14

Sobreflujo (Overflow) El sobreflujo ocurre cuando al sumar dos números de n bits, el resultado ocupa n + 1bits.

Es un problema de la representación ligado al tamaño finito de los registros del sistema En general se detecta y se informa. 15

Bibliotecas Unificadas: Sumador binario Se disponen en distinto tamaño: 4, 8, 16 bits Son encadenables

Sumadores de mayor tamaño

Números sin signo o C2

Interpretación de los operandos 16

Suma Binaria

Suma BCD de dos dígitos

Se puede obtener utilizando un sumador binario ?

Suma BCD

Valor decimal

K Z8 Z4 Z2 Z1

C S 8 S4 S2 S1

0 0 0 0 0

0 0 0 0 0

0

0 0 0 0 1

0 0 0 0 1

1

0 0 0 1 0

0 0 0 1 0

2

0 0 0 1 1

0 0 0 1 1

3

0 0 1 0 0

0 0 1 0 0

4

0 0 1 0 1

0 0 1 0 1

5

0 0 1 1 0

0 0 1 1 0

6

0 0 1 1 1

0 0 1 1 1

7

0 1 0 0 0

0 1 0 0 0

8

0 1 0 0 1

0 1 0 0 1

9

0 1 0 1 0

1 0 0 0 0

10

0 1 0 1 1

1 0 0 0 1

11

0 1 1 0 0

1 0 0 1 0

12

0 1 1 0 1

1 0 0 1 1

13

0 1 1 1 0

1 0 1 0 0

14

0 1 1 1 1

1 0 1 0 1

15

1 0 0 0 0

1 0 1 1 0

16

1 0 0 0 1

1 0 1 1 1

17

1 0 0 1 0

1 1 0 0 0

18

1 0 0 1 1

1 1 0 0 1

19

17

Suma en BCD •

Ejemplo 1: S = A + B, dónde A = (+ 184) y B = (+ 576) Signo

Centena

Decena

1

1

0000

0001

1000

0100

184

0000

0101

0111

0110

+ 576

0000

0111

1 0000

1010

0110

0110

0110

1 0000

Acarreo BCD

Suma Binaria Corrección

Suma BCD 0000

0111

Unidad Suma Decimal

760 18

Suma en BCD •

Ejemplo 2: S = A + B, dónde A = (- 184) y B = (- 576) C10(A) = 9 816 Signo

Centena

C10(B) = 9 424 Decena

Unidad Suma Decimal

Acarreo BCD 1 1001

1000

0001

0110

- 184

1001

0100

0010

0100

- 576

1 1011

1100

0100

1010

0110

0110

1 1001

1 0010

Suma Binaria Corrección Suma BCD

1

0110 0100

1 0000

- 760 19

Suma en C1 • Caso 1:

A

A>0yB>0 Cout

S=A+B

Resultado correcto

B Sumador Binario

Cin

S

A B S= A+B

Sistema decimal +6 +13 +19

Sistema binario 0 0000110 0 0001101 0 0 0010011 20

Suma en C1 • Caso 2: A < 0 y B < 0

Resultado correcto

S = (rn – 1 – A) + ( rn – 1 – B) = rn – 1 + rn – 1 – ( |A| + |B| )

A B S= A+B

Sistema decimal -6 -13 -19

Sistema binario 1 1111001 1 1110010 1 1 1101011 (- 20) 1 1 1101100 21

Suma en C1 • Caso 3: A < 0 y B > 0 y |A| < |B| Resultado correcto S = (rn – 1 – A) + B = rn – 1 + ( |B| – |A| )

A B S= A+B

Sistema decimal -6 +13 +7

Sistema binario 1 1111001 0 0001101 1 0 0000110 ( + 6) 1 00000111

22

Suma en C1 • Caso 4: A > 0 y B < 0 y |A| < |B| Resultado correcto S = A + (rn – 1 – B) = rn – 1 – ( |B| – |A| )

A B S= A+B

Sistema decimal Sistema binario +6 0 0000110 -13 1 1110010 -7 0 1 1111000 23

Sumador binario en C1 A

Cout

B Σ Sumador Binario

Cin

S

Cuando sumamos números positivos y negativos utilizando complemento a r – 1, se obtendrá el resultado correcto siempre, si se suma rn al dígito menos significativo. 24

Resta binaria

R=A-B

R = A + (- B)

Se complementa el sustraendo ( C2 ó C1)

Se obtiene a partir del bloque sumador 25

Bibliotecas Unificadas: Sumador/Restador binario Se disponen en distinto tamaño: 4, 8, 16 bits Son encadenables

Operandos de mayor tamaño

Números sin signo o C2

Interpretación de los operandos 26

Multiplicación y división binarias Se obtienen a partir de la suma y resta binarias , realizando los corrimientos correspondientes.

Se opera con los valores absolutos y se obtiene el signo del resultado a partir de los signos de los operandos.

ALU

• Operaciones aritméticas • Operaciones lógicas • Corrimientos y rotaciones 27

Representación de números reales.

28

Representación de números reales Se considera la coma o punto, fijo en cierta posición.

Representación de punto fijo Se almacena la posición que ocupa la coma o punto.

Representación de punto flotante 29

Representación en punto fijo El punto en el extremo izquierdo

El número es una fracción El punto en el extremo derecho

El número es un entero 30

Representación en punto flotante

Mantisa: Número de punto fijo con signo

N = m x re Exponente: Representa la posición del punto

La mantisa y el exponente se representan físicamente 31

Normalización en punto flotante Un número con punto flotante está normalizado si el dígito más significativo de la mantisa es distinto de cero. Ejemplo: Mantisa fraccionaria (magnitud y signo 8 bits), exponente (C2, 6 bits) Nro. binario + 0011,011

Número sin normalizar

Número normalizado

Mantisa

Exponente

Mantisa

Exponente

0 0011011

0 00100

0 1101100

0 0010

Bit de signo El punto está a la derecha del bit de signo

32

Representación computacional de datos.

33

Representación computacional de datos

Enteros o en punto fijo Reales en punto flotante Decimales Caracteres

Código ASCII 34

Representación computacional de enteros BYTE

8 Bits SBYTE WORD

16 Bits SWORD DWORD

32 Bits SDWORD 35

Conversión entre distintas longitudes Ejemplo: + 18 =

00010010 (complemento a dos, 8 bits).

+ 18 = 0000000000010010 (complemento a dos, 16 bits). -18 =

11101110 (complemento a dos, 8 bits).

- 18 = 1111111111101110 (complemento a dos, 16 bits).

Debe completarse el formato usando el bit de signo 36

Representación computacional de decimales 9 BCD Empaquetado 9 BCD Desempaquetado 9 Modo Carácter Nº

BCD Empaquetado

BCD Desempaquetado

12

0001 0010

0000 0001 0000 0010

623

0000 0110 0010 0011

0000 0110 0000 0010 0000 0011

910

0000 1001 0001 0000

0000 1001 0000 0001 0000 0000



ASCII

12

0011 0001 0011 0010

623

0011 0110 0011 0010 0011 0011

910

0011 1001 0011 0001 0011 0000

37

Representación computacional en punto flotante

Mantisa normalizada

Exponente sesgado

Representada en magnitud y signo Se asume que es fraccionaria

Se suma un valor fijo para que sea siempre positivo

La base se conoce y por lo tanto no se representa 38

Estándar 754 de IEEE para punto flotante Los distintos formatos del esquema tienen la misma estructura

La mantisa se normaliza y no se representa el bit más significativo

SIGNIFICANTE

El significante es un número entre 1 y 2.

39

Estándar 754 de IEEE para punto flotante

40

Estándar 754 de IEEE para punto flotante

41

Estándar 754 de IEEE: Ejemplos

42

Estándar 754 de IEEE para punto flotante Los bits disponibles en cada formato de la norma se reparten entre significante y exponente

Existe un compromiso entre rango representable y resolución. 43

Suma y resta en punto flotante Se siguen los siguientes pasos:

Verificación de operandos nulos Alineación de significantes Suma o resta de significantes Normalización y redondeo del resultado 44

Suma y resta en punto flotante La suma y la resta obligan a realizar un alineamiento de significantes Los exponentes deben ser iguales

Se pierden dígitos significativos

Se desplaza el significante del número más chico Ejemplo en decimal: S = 123 100 + 456 10-2 = 123 100 + 4,56 100 = 127,56 100 45

Estándar 754 de IEEE: Bits de guarda Z = X – Y = 1,000 … 00 21 – 1,111 … 11 20 Sin bits de guarda:

Con bits de guarda:

X = 1,000.........00 x 21

X = 1,000.........00 0000 x 21

21

- Y = 0,111.........11 1000 x 21

Z = 0,000.........01 x 21

Z = 0,000.........00 1000 x 21

Z = 1, 000........00 x 2-22

Z = 1, 000........00 0000 x 2-23

- Y = 0,111.........11 x

Sirven para reducir los errores al operar

46

Estándar 754 de IEEE: Redondeo

Trunca los bits de guarda

Redondeo a cero

Redondeo al más próximo

Usada por defecto

Redondeo hacia + ∞

Redondeo hacia - ∞

Se utilizan sólo si las necesidades de exactitud son muy altas

47

Multiplicación y división en punto flotante Se siguen los siguientes pasos: Verificación de operandos nulos Suma o resta de exponentes Multiplicación o división de significantes Normalización y redondeo del resultado 48

Caracterización de las representaciones.

49

Caracterización de los sistemas de representación Capacidad de representación:

Cantidad de tiras de datos distintas que es posible representar en el sistema.

Depende del número de símbolos del alfabeto y de la longitud de la tira con la que se representan los valores. 50

Caracterización de los sistemas de representación Capacidad de representación, ejemplos: Sistema con alfabeto binario restringido a 6 bits Número de representaciones posibles

26 = 64

Que ocurre con el valor anterior si la representación es: ‰ Punto fijo, se representan enteros positivos. ‰ Punto fijo fraccionaria pura > = 0. ‰ Punto flotante, mantisa entera en C2 de 3 bits, exponente positivo de 3 bits. 51

Caracterización de los sistemas de representación Rango:

En sistemas de numéricos, es un entorno que queda definido por los valores mínimo y máximo que pueden representarse en la recta numérica.

52

Representación restringida a n bits: Parámetros Rango, ejemplos: Sistema con alfabeto binario restringido a 6 bits ‰ Números enteros >= 0 ‰ Números enteros, en C1

[0 , 63] [- 31 , +31]

‰ Mantisa fraccionaria pura >= 0

[0 , 0.111111]

‰ Mantisa entera >= 0 (2 bits), exponente en C1

[0 , 3*2 7] 53

Caracterización de los sistemas de representación Resolución:

En sistemas de representación numéricos, se define a partir de los números consecutivos en la recta numérica.

54

Representación restringida a n bits: Parámetros Resolución, ejemplos: Sistema con alfabeto binario restringido a 6 bits ‰ Números enteros >= 0 ‰ Mantisa fraccionaria pura >= 0

(1)2 (0.000001)2

‰ Mantisa entera >= 0 (2 bits), exponente en C1

RM = (1* 27)2

Rm = (1*2-7)2

55

Conclusiones El número de símbolos del alfabeto y la longitud de la tira que se utiliza para representar los valores, son quienes determinan la capacidad de representación de un sistema.

Representaciones numéricas restringidas a n dígitos

El rango en punto flotante es más amplio que en punto fijo. 56

Conclusiones

Los sistemas numéricos en punto flotante, tienen resolución variable a lo largo de la recta numérica.

La distribución de los dígitos de la representación entre mantisa y exponente en un sistema en punto flotante constituye una solución de compromiso.

57

Conclusiones

Los sistemas reales tienen recursos limitados Los requerimientos del diseño determinan las características de la representación más adecuada.

La bondad del sistema de representación se evalúa en el contexto de la aplicación en la que se lo utiliza 58

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.