91
Diseño Digital una Rapsodia M.I Eduardo Ramírez Sánchez

Diseño Digital una Rapsodia

Embed Size (px)

DESCRIPTION

Diseño Digital una Rapsodia. M.I Eduardo Ramírez Sánchez. Temario. Introducción, Sistemas numéricos y Códigos. Digital vs. Analógico. Analógico: valores que varían sobre un amplio rango continuamente. Digital: solo asume valores discretos. - PowerPoint PPT Presentation

Citation preview

Diseño Digital una Rapsodia

M.I Eduardo Ramírez Sánchez

Temario

Introducción, Sistemas numéricos y Códigos

Digital vs. Analógico

Analógico: valores que varían sobre un amplio rango continuamente

Digital: solo asume valores discretos

+5

V

–5

T ime

+5

V

–5

1 0 1

T ime

¿Qué queremos decir con ”Digital”?

• Señal DigitalSeñal que puede tener uno de un conjunto finito de posibles valores.

• Señal AnalógicaSeñal que puede tener uno de un conjunto infinito de posibles valores.

Contando DedosDedos={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

TemperaturaInfinidad de Posibilidades

¿Qué es un ”Sistema Digital”?

Sistema Digital- Sistema que acepta entradas digitales y genera

salidas digitales.- Ejemplo: Computadoras

• Entradas digitales: letras y números del teclado.• Salidas digitales: números nuevos o letras que

se almacenarán en un archivo o que se mostraran en la pantalla.

- Existen muchos otros sistemas digitales:• Teléfonos celulares, control de motores de

automóvil, decodificadores de TV, instrumentos musicales, reproductores de DVD, cámaras digitales, reconocimiento de huellas digitales, etc.

¿Qué es un ”Sistema Digital”?

Circuitos Digitales• Una conexión de componentes digitales

que en conjunto componen un sistema digital.

Señal Digital con solo 2 valores posibles – Binario

• Representados típicamente por 1’s y 0’s.• Un digito binario es un bit.• Solo vamos a considerar señales

digitales binarias.

Componentes Digitales

Circuito Digitales

Sistemas Digitales

Bits, bytes, nibbles y tamaño de palabra

A un solo número binario (ya sea el 0 o el 1) se le conoce como bit. Bit es la abreviatura de binary digit. El bit es la unidad de datos más pequeña de un sistema digital. Físicamente, en un circuito digital, a un solo bit se le representa mediante un voltaje Alto o Bajo.

Todos los dispositivos digitales, aún los más sencillos, manejan grupos de datos muy grandes que se les denominan tamaño de palabra, estas palabras pueden ser por ejemplo 8, 16, 32, 64 bits etc. Un fragmento de 16 bits de datos sele conoce con el nombre de palabra. Una palabra doble tiene 32 bits, mientras que una palabra cuádruple tiene 64 bits.

Representación de la Información

• Bit (Digito Binario)– 0 y 1– Representa falso y verdadero en logica– Representa estados bajo y alto en dispositivos

electrónicos

• Otras Unidades– Byte: 8 bits– Nibble: 4 bits – Word: Multiplos del byte (ejem: 1 byte, 2 bytes, 4

bytes, 8 bytes, etc.), dependiendo de la arquitectura del sistema

• Un byte es un grupo de 8 bits de datos que representa un número, una letra, un signo de puntuación, un carácter de control, un código de operación de un dispositivo digital o algún otra cosa.

• Un nibble es el equivalente de medio byte o un grupo de datos de 4 bits.

• En resumen

• Bit 1 bit (un 0 o un 1)

• Nibble 4 bits (ej. 1010)

• Byte 8 bits (ej. 1110 1011)

• Palabra 16 bits (ej. 1111 0000 1100 1101)

• Palabra doble 32 bits (ej. 1100 0001 1111 1100 1110 0011 1011 1110)

• Palabra cuádruple 64 (ej. 0001 0011 0011 1110 0010 0000 0000 11011001

1110 0001 0110 1100 0001 0011 1000)

Representación de la información • N bits pueden representar hasta 2N valores.

– Ejemplos:• 2 bits representan hasta 4 valores (00, 01, 10, 11)

• 3 bits rep. hasta 8 valores (000, 001, 010, …, 110, 111)

• 4 bits rep. hasta 16 valores (0000, 0001, 0010, …., 1111)

• Para representar M valores, log2M bits son requeridos.– Ejemplos:

• 32 valores requiere 5 bits

• 64 valores requiere 6 bits

• 1024 valores requiere 10 bits

• 40 values cuantos bits?

• 100 values cuantos bits?

Digitalización

El mundo es generalmente analógico.

• Muchos sistemas digitales convierten señales analógicas en señales digitales.

• Muchas aplicaciones cambian al usar implementaciones digitales:

−Casete → MP3−VHS → DVD

Beneficios de la Digitalización

Las señales analógicas (ejem. audio) pueden perder calidad.

• Los voltajes no se guardan/copian/transmiten perfectamente.

• La versión digitalizada permite un guardar/copiar/transmitir casi perfecto.

• Una “muestra” de voltaje en un rango particular se guarda usando codificación de bits.

• Aún así los niveles de voltaje no se conservan perfectamente.

• Pero se pueden distinguir por 1’s y 0’s.

Beneficios de la Digitalización

• Al digitalizar audio se puede comprimir− e. g. MP3’s− Un CD puede almacenar 20 canciones sin comprimir

pero 200 comprimidas.

• La compresión también puede realizarse a imágenes (jpeg), películas (mpeg) y otros.

• La digitalización también tiene muchos otros beneficios.

¿Cómo Podemos Codificar Datos Binarios Para Nuestro Sistema Digital?

• Algunas entradas esencialmente binarias.

− Botones: sin presionar (0), presionado (1).

− Algunas entradas esencialmente digitales.

• Solo se necesita codificar en binario.− e. g. multi-botón de entrada:

codificación rojo=001, azul=010, etc.

• Algunas entradas analógicas.− Es necesario un convertidor

analógico-a-digital.− Como se hizo en la diapositiva

anterior: muestra y codificación con bits.

Códigos Alfanuméricos

• Representan números y caracteres alfabéticos. – También representan otros caracteres tales

como símbolos y varias instrucciones necesarias para transmitír información.

• El código alfanumérico ASCII es el más común .– ASCII = American Standard Code for

Information Interchange

ASCII

• ASCII tiene 128 caracteres y símbolos representados por un código binario

de 7-bit .– puede ser considerado un código de 8-bit con

el MSB siempre 0. (00h-7Fh)• 00h-1Fh (los primeros 32) – caracteres de control• 20h-7Fh – símbolos gráficos (pueden desplegarse o

ser impresos)

Cómo Codificar Texto: ASCII

• ASCII: 7 (u 8) bits de codificación por cada letra, número o símbolo.

TablaASCII

http://ascii-table.com/img/table.gif

ASCII Extendido

• Existen 128 caracteres adicionales que fueron adoptados por IBM para uso en sus PCs. Es popular y es usado en otras aplicaciones diferentes a las PCs es un estandard no oficial.– Los caracteres extendidos ASCII están

representados por un código serial de 8-bit de 80h-FFh

Tabla ASCII Extendido

http://ascii-table.com/img/table-pc.gif

• Unicode: Codificación de 16 bits, cuya popularidad va en aumento.

−Codifica caracteres de diferentes partes del mundo.

Unicode

Sistema Decimal (Base 10)

• Un sistema numérico (peso-posicion)– La base o radix es 10 (la base o radix de un sistema numérico

es el número total de simbolos/digitos permitidos en el sistema)– Simbolos/digitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }– La posición es importante, como el valor de cada simbolo/digito

es dependiente en su tipo y su posición en el número– Ejemplo, el 9 en los dos números mostrados abajo tienen

diferentes valores:• (7594)10 = (7 × 103) + (5 × 102) + (9 × 101) + (4 × 100)

• (912)10 = (9 × 102) + (1 × 101) + (2 × 100)

– En general, (anan-1… a0 . f1f2 … fm)10 =

(an x 10n) + (an-1x10n-1) + … + (a0 x 100) + (f1 x 10-1) + (f2 x 10-2) + … + (fm x 10-m)

Sistema Decimal (Base 10)

• Factores de Peso (o pesos) son en potencias de 10:

… 103 102 101 100 . 10-1 10-2 10-3 …

• Para evaluar el número decimal 593.68, el dígito en cada posición es multiplicado por el correspondiente peso:

5102 + 9101 + 3100 + 610-1 + 810-2

= (593.68)10

Otros Sistemas Numéricos• Binario (base 2)

Pesos en potencias de 2

Dígitos Binarios (bits): 0, 1

• Octal (base 8) Pesos en potencias de 8

Dígitos Octal: 0, 1, 2, 3, 4, 5, 6, 7.

• Hexadecimal (base 16) Pesos en potencias de 16

Dígitos Hexadecimal : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

• Base/radix R: Pesos en potencias de R

Conversión Decimal a Binario

• Método – Método Repetir División-por-2 (para números

enteros)– Método Repetir Multiplicación-por-2 (para fracciones)

División Repetida-por-2 Para convertir un número entero a binario, use división

sucesiva por 2 hasta que el cosiente sea 0. El residuo forma la respuesta, con el primer residuo como el bit menos significativo (LSB) y el último como el bit más significativo (MSB).

(43)10 = (101011)2

Convirtiendo Números Decimales a Binarios: Método de División

• Divide el número decimal entre 2 y el residuo se inserta al número binario.

− Continua dividiendo el cociente entre 2 hasta que sea igual 0.

− Ejemplo: convertir 12 en binario.

Multiplicación Repetida-por-2

Para convertir fracciones decimales a binarias, se usa repetir multiplicación por 2, hasta que el producto fraccional sea 0 (o hasta el número deseado de lugares decimales ). Los digitos acarreados, o carry, producen la respuesta, con el primer carry como el MSB, y el último como el LSB.

(0.3125)10 = (.0101)2 carry

0.31252=0.625 0 MSB

0.6252=1.25 1

0.252=0.50 0

0.52=1.00 1 LSB

Conversión Entre Decimal y Otras Bases

Base-R a decimal: multiplique dígitos con su correspondientes pesos.

Decimal a binario (base 2) Números Enteros repita division-por-2

Fracciones: repita multiplicación-´por-2

Decimal a base-R Números Enteros: repita división-por-R

Fracciones: repita multiplicación-por-R

Conversión Entre Bases• En general, la conversión entre bases puede ser

hecha via decimal:

Atajos para la conversión entre bases 2, 4, 8, 16

Base-2 Base-2

Base-3 Base-3

Base-4 Decimal Base-4

… ….

Base-R Base-R

Conversión Binario a Octal/Hexdecimal

• Binario Octal: partición en grupos de 3– (10 111 011 001 . 101 110)2 =

• Octal Binario: reversa– (2731.56)8 =

• Binario Hexadecimal: partición en grupos de 4– (101 1101 1001 . 1011 1000)2 =

• Hexadecimal Binario: reversa– (5D9.B8)16 =

Base-R a Conversión Decimal

1101.1012 = 123 + 122 + 120 + 12-1 + 12-3

572.68 =

2A.816 =

341.245 =

Base Dieciséis: Otra Base Utilizada en Ocasiones por Diseñadores Digitales

• Muy práctica, ya que cada posición representa 4 posiciones de la base 2.

− Es usada como un método compacto para escribir números binarios.

• Es conocida como hexadecimal o solo hex

Códigos Decimales• Los números decimales son favorecidos por los humanos.

Los números binarios son naturales a las computadoras. Así que se requiere una conversión.

• Si un pequeño cálculo es requerido, se puede usar un esquema de codificación para almacenar números decimales, para propósitos de transmisión de datos.

• Ejemplos: BCD (o 8421), Exceso en-3, 84-2-1, 2421, etc.• Cada dígito decimal esta representado como un código de

4-bit.• El número de dígitos en un código es también llamado la

longitud del código.

Código decimal binario (BCD) • Algúnos códigos usados,

como 1010BCD, 1011BCD, … 1111BCD. Éstos codigos son considerados como errores.

• Fáciles de convertir, pero las operaciones aritméticas are más complicadas.

• Disponibles para interfaces tales como teclados.

Decimal digit

BCD

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

Código decimal binario (BCD) • Ejemplos de conversión entre valores BCD y valores

decimales:– (234)10 = (0010 0011 0100)BCD

– (7093)10 = (0111 0000 1001 0011)BCD

– (1000 0110)BCD = (86)10

– (1001 0100 0111 0010)BCD = (9472)10

• Note que BCD no equivale a binario– Ejemplo: (234)10 = (11101010)2

Otros Códigos Decimales

Código autocomplementado: códigos para dígitos complementarios son también complementarios entre uno

y otro.

• Código para corrección de errores: codigo biquinario (bi=two, quinario=five).

Decimal Digit BCD8421

Excess-3 84-2-1 2*421 Biquinary5043210

0 0000 0011 0000 0000 01000011 0001 0100 0111 0001 01000102 0010 0101 0110 0010 01001003 0011 0110 0101 0011 01010004 0100 0111 0100 0100 01100005 0101 1000 1011 1011 10000016 0110 1001 1010 1100 10000107 0111 1010 1001 1101 10001008 1000 1011 1000 1110 10010009 1001 1100 1111 1111 1010000

Códigos auto-complementados• Los códigos representan el par de dígitos complementarios

son también complementarios el uno con el otro.• Ejemplo: Código exceso en-3

Pregunta: ¿Cuales son los otros códigos auto-complementados?

0: 00111: 01002: 01013: 01104: 01115: 10006: 10017: 10108: 10119: 1100

El Código Gray

• El código Gray es un código no pesado y no és un código aritmético .– No existe un peso específico asignado a la

posición de sus bit.

• Importante: el código Gray muestra solo un cambio en un bit de la palabra del código a la siguiente de la secuencia.– Esta propiedad es importante en muchas

aplicaciones.

El Código Gray

Decimal Binario Código Gray

0 0000 0000

1 0001 0001

2 0010 0011

3 0011 0010

4 0100 0110

5 0101 0111

6 0110 0101

7 0111 0100

Decimal Binario Código Gray

8 1000 1100

9 1001 1101

10 1010 1111

11 1011 1110

12 1100 1010

13 1101 1011

14 1110 1001

15 1111 1000

El Código Gray

• Conversión de código Binario a Gray– El MSB en el código Gray es el mismo que

corresponde al MSB en el número binario.– Moviendose de de izquierda a derecha, sume

cada par adyacente de los bits del código binario para obtener el siguiente bit del código Gray code bit. Discard carries.

eje: convertir 101102 a código Gray

1 + 0 + 1 + 1 + 0 binary

1 1 1 0 1 Gray

El Código Gray• Conversion de Código Gray a Binario

– El MSB en el código Binario es el mismo que corresponde al MSB en el código Gray.

– Sume cada bit del código binario generado a el bit del código Gray en la siguiente posición adyacente. Quite los acarreos.

eje: convierta la palabra del código Gray 11011 a binario

1 1 0 1 1 Gray

+ + + +

1 0 0 1 0 Binary

Código Gray

0

0

1

0 0

0

0 1 0 0

1

1

1 0 1

1 1 0 1 1 1

1 0 0

sensores

Código Binario: 111 110 000

0

0

0

1 1

1

0 1 0 0

0

1

1 0 1

0 1 1 1 0 0

1 1 0

sensores no alineados 1

0

1

1 1

1

0 0 0 1

0

0

0 1 0

0 0 1 0 1 1

1 1 0

sensores no alineados

Código Gray: 111 101

0 0

0

1 1 1

0

1

0

0

0

1

1 0 1

0 1 11 0 0

1 1 0

0 0 0

1 1 1

0

1

0

0

0

1

1 0 1

0 1 1

1 0 0

1 1 0

1 0

1

1 1 1

0

0

0

1

0

0

0 1 0

0 0 10 1 1

1 1 0

1 0 1

1 1 1

0

0

0

1

0

0

0 1 0

0 0 1

0 1 1

1 1 0

El Código Gray - AplicacionesBit 0

Bit 1

Bit 2

Bit 3

Detección de Errores• Los errores pueden ocurrir durante la

transmision de datos. Éstos deberán ser detectados, para que se pueda solicitar la retransmisión.

• Con los números binarios, usualmente ocurre un error en un solo bit.– Ejemplo: 0010 erroneamente transmitido como 0011

o 0000 o 0110 o 1010.

• El código Biquinario tiene una longitud de 7; éste usa 3 bits adicionales para la detección de errores.

Detección de errores • Bit de paridad

– Paridad par: un bit adicional es anadido para hacer un total de numeros 1’s pares.

– Paridad impar: un bit adicional es añadido para hacer un numero total 1’s impares.

• Ejemplo de paridad impar en valores ASCII .

Character ASCII Code 0 0110000 1 1 0110001 0

. . . . . . 9 0111001 1 : 0111010 1 A 1000001 1 B 1000010 1

. . . . . . Z 1011010 1 [ 1011011 0 \ 1011100 1

Bits de paridad

Detección de errores • El bit de Paridad puede

detectar un numero impar de errores pero no un numero par de errors.– Ejemplo: Asuma paridad

impar,• 10011 10001 (detectado)• 10011 10101 (no detectado)

• Los bits de Paridad pueden tambien ser apliecados a un bloque de datos.

0110 10001 01011 01111 11001 10101 0 Columna paridad-

aconsejada

Renglon-paridad-aconsejada

Detección de errores• Algunas veces, no es suficiente detectar el error

. Sino tambien corregir el error.• Corregir el error cuesta caro. En la practica, se

puede usar solo la correccion de un solo bit.• Tecnica popular: Codigo de Hamming

Corrección de errores • Dado un codigo de 3-bit C1

{ 000, 110, 011, 101 }

• Con 4 palabras codificadas, se necesitan actualmente solo 2 bits.– Se llamara a esto k, el numero de bits del mensaje

original.

• Para añadir la habilidad de deteccion/correccion de error, se usan mas bit de los necesarios. – En este caso, la longitud de cada palabra-codificada es 3

• Se define eficiencia de codigo (o tasa) pork / longitud de palabra-codificada

• Asi, eficiencia de C1 es 2/3.

Corrección de errores• Dado este codigo de 3-bit C1

{ 000, 110, 011, 101 }

• Puede C1 detectar un solo bit de error?

• Puede C1 corregir un solo bit de error?

Algunas veces, nosotros usamos “1 error” para “ un solo bit de error”, “2 errores” para “2 bits de error”, etc.

Corrección de errores • La distancia d entre cualquier de dos palabras

de un codigo es la suma de el numero de diferencias entre las palabras-codificadas.– Ejemplo: d(000, 110) = 2; d(0110,1011) = 3.

• La distancia Hamming de un codigo es la distancia minima entre cualquier de dos palabras en el codigo.– Ejemplo: La distancia Hamming de C1 es 2.

• Un codigo con distancia Hamming de 2 puede detectar 1 error.

Correccion de errores • Dado este código de 6-bit C2

{ 000000, 111000, 001110, 110011 }

• Cual es su eficiencia? • Cual es su distancia de Hamming?• Puede corregir 1 error?

Puede corregir 2 errores?

Corrección de errores • Codigo de Hamming: un código popular para

corrección de code

• Procedimiento– Los bits de paridad estan en las posiciones que son

potencias de 2 (1, 2, 4, 8, 16, …)

– Las otras posiciones son bits de datos

– Cada bit de paridad checa alguno de los bits de datos • Posicion 1: Checa 1 bit, salta 1 bit (1, 3, 5, 7, 9, 11, …)• Posicion 2: Checa 2 bits, salta 2 bits (2, 3, 6, 7, 10, 11, …)• Posicion 4: Checa 4 bits, salta 4 bits (4-7, 12-15, 20-23, …)• Posicion 8: Checa 8 bits, salta 8 bits (8-15, 24-31, 40-47, …)

– Se pone el bit de paridad de acuerdo tal que el numero total de 1s en las posiciones su cheque sea par.

Auto-estudioAuto-

estudio

Corrección de errores

• Ejemplo: Dato 10011010• Insertar posiciones para bits de paridad:

_ _ 1 _ 0 0 1 _ 1 0 1 0– Posicion 1: ? _ 1 _ 0 0 1 _ 1 0 1 0 entonces ? debe ser 0– Posicion 2: 0 ? 1 _ 0 0 1 _ 1 0 1 0 entonces ? debe ser 1– Posicion 4: 0 1 1 ? 0 0 1 _ 1 0 1 0 entonces ? debe ser 1– Posicion 8: 0 1 1 1 0 0 1 ? 1 0 1 0 entonces? debe ser 0

Respuesta: 0 1 1 1 0 0 1 0 1 0 1 0Respuesta: 0 1 1 1 0 0 1 0 1 0 1 0

Correccion de errores• Supongase 1 error ocurrido y el dato recibido

es:

0 1 1 1 0 0 1 0 1 1 1 0• ¿Como determinar cual bit es el error?• Checar cuales bits de paridad estan en el error.

– Respuesta: bits de paridad 2 y 8.

• Sume las posiciones de estos bits de paridad erroneos – Respuesta: 2 + 8 = 10. Asi el bit de dato 10 es el

error.

Auto-estudioAuto-estudio

Dato corregido: 0 1 1 1 0 0 1 0 1 0 1 0Dato corregido: 0 1 1 1 0 0 1 0 1 0 1 0

Números NegativosNúmeros no Signados: únicamente valores no

negativos.

Números Signados: incluye todos los valores (positivos y negativos)

Existen 3 representaciones comunes para números binarios signados: Signo y Magnitud

Complemento a 1s

Complemento a 2s

Signo y Magnitud • El signo es representado por un ‘bit de signo’

– 0 for +– 1 for -

• Ejem: un 1-bit de signo y formato de magnitud de 7-bit

signo magnitud

00110100 +1101002 = +5210

10010011 -100112 = -1910

Signo y Magnitud • El valor mayor: 01111111 = +12710

• El valor menor: 11111111 = -12710

• Ceros: 00000000 = +010

10000000 = -010

• Rango: -12710 to +12710

• Pregunta: – Para una representación de una magnitud signada y de

n-bit, ¿cual es el rango de valores que pueden ser representados?

Signo y Magnitud • Para negar un número, solamente invierta el bit

de signo.• Ejemplos:

– Como negar 00100001sm (decimal 33)?Contestación: 10100001sm (decimal -33)

– Como negar 10000101sm (decimal -5)?Contestación: 00000101sm (decimal +5)

Complemento a 1s Dado un número x el cual puede ser expresado como un

número binario de n-bit, su valor negado puede obtenerse representandolo en complemento a 1s usando:

-x = 2n – x – 1

• Ejemplo: Con un número de 8-bit 00001100 (o 1210), su valor negado expresado en complemento a 1s es:

-000011002 = 28 – 12 – 1 (calculado en decimal)

= 243= 111100111s

(Esto significa que -1210 es escrito como 11110011 en –representación de complemento a 1s.)

Complemento a 1s • Técnica esencial para negar un valor: invierta

todos los bits.

• El valor mayor: 01111111 = +12710

• El valor menor: 10000000 = -12710

• Ceros: 00000000 = +010

11111111 = -010

• Rango: -12710 to +12710

• El bit más significantivo (el de más a la izquierda) aún representa el signo: 0 para positivo; 1 para negativo.

Complemento a 1s• Ejemplos (asumiendo números de 8-bit):

(14)10 = (00001110)2 = (00001110)1s

-(14)10 = -(00001110)2 = (11110001)1s

-(80)10 = -( ? )2 = ( ? )1s

Complemento a 2s • Dado un número x el cual puede ser expresado como

número binario de n-bit, su valor negado puede obtenerse en su representación de complemento a 2s usando:

-x = 2n – x

• Ejemplo: Con un número de 8-bit 00001100 (o 1210), su valor negado expresado en complemento a 2s es:

-000011002 = 28 – 12 (calculado en decimal)

= 244= 111101002s

(Esto significa que -1210 es escrito como 11110100 en su representación en complemento a 2s.)

Complemento a 2s• Técnicas esenciales para negar un valor: inverta

todos los bits, luego sume 1.

• El valor mayor: 01111111 = +12710

• El valor menor: 10000000 = -12810

• Cero: 00000000 = +010

• Rango: -12810 to +12710

• El bit más significativo (el de más a la izquierda) aún representa el signo: 0 par positivo; 1 para negativo.

Complemento a 2s• Ejemplos (asumiendo números de 8-bit):

(14)10 = (00001110)2 = (00001110)2s

-(14)10 = -(00001110)2 = (11110010)2s

-(80)10 = -( ? )2 = ( ? )2s

ComparacionesSistema de 4-bit

Valores Positivos Valores Negativos

Valor Signo y Magnitud

Comp. 1s

Comp. 2s

+7 0111 0111 0111 +6 0110 0110 0110 +5 0101 0101 0101 +4 0100 0100 0100 +3 0011 0011 0011 +2 0010 0010 0010 +1 0001 0001 0001 +0 0000 0000 0000

Valor Signo y Magnitude

Comp. 1s

Comp. 2s

-0 1000 1111 - -1 1001 1110 1111 -2 1010 1101 1110 -3 1011 1100 1101 -4 1100 1011 1100 -5 1101 1010 1011 -6 1110 1001 1010 -7 1111 1000 1001 -8 - - 1000

Complemento de Fracciones• Se puede extender la idea de complemento de

fracciones.• Ejemplos:

– Negativo 0101.01 en complemento a 1sRespuesta: 1010.10

– Negativo 111000.101 en complemento a 1sRespuesta: 000111.010

– Negativo 0101.01 en complemento a 2sRespuesta: 1010.11

Complemento a 2sAdición/Substracción

• Algoritmo para adición, A + B:1. Se ejecuta la adición binaria sobre los dos números.

2. Se Ignora el carry out de el MSB.

3. Chequeo de sobreflujo. El sobreflujo ocurre si el ‘carry in’ y el ‘carry out’ de el MSB son diferentes, o si el resultado es signo opuesto de A y B.

• Algoritmo para substracción, A – B:A – B = A + (-B)

1. Se ejecuta el complemento a 2s de B.

2. Se suma el complemento a 2s de B a A.

Sobreflujo• Los números Signados son de un rango fijo.• si el resultado de la adición/substracción va más alla de

este rango, ocurre un sobreflujo.• El sobreflujo puede ser facilmente detectado:

– positivo suma positivo negativo– negativo suma negativo positivo

• Ejemplo: Sistema de 4-bit complemento a 2s– Rango del valor: -810 to 710

– 01012s + 01102s = 10112s

510 + 610 = -510 ?! (¡sobreflujo!)

– 10012s + 11012s = 101102s (descarga carry final) = 01102s

-710 + -310 = 610 ?! (¡sobreflujo!)

Complemento a 2s Adición/Substracción

• Ejemplos: sistema de 4-bit

¿Cual de los de arriba es/son sobreflujo(s)?

+3 0011 + +4 + 0100 ---- ------- +7 0111 ---- -------

-2 1110 + -6 + 1010 ---- ------- -8 11000 ---- -------

+6 0110 + -3 + 1101 ---- ------- +3 10011 ---- -------

+4 0100 + -7 + 1001 ---- ------- -3 1101 ---- -------

Complemento a 2s Adición/Substracción

• Ejemplos: sistema de 4-bit

¿Cual de los de arriba es/son sobreflujo(s)?

-3 1101 + -6 + 1010 ---- ------- -9 10111 ---- -------

+5 0101 + +6 + 0110 ---- ------- +11 1011 ---- -------

Complemento a 1s Adición/Substracción

• Algoritmo para la adición, A + B:1. Ejecutar la adición binaria sobre los dos numeros.

2. Si hay un carry out del MSB, sume 1 a el resultado.

3. Cheque sobreflujo. El sobreflujo ocurre si el resultado es signo opuesto de A y B.

• Algoritmo para la subtracción, A – B:A – B = A + (-B)

1. Tome complemento a 1s de B.

2. Sume el complemento a 1s de B a A.

Complemento a 1s Adición/Substracción

• Ejemplos: sistema de 4-bit

+3 0011 + +4 + 0100 ---- ------- +7 0111 ---- -------

+5 0101 + -5 + 1010 ---- ------- -0 1111 ---- -------

-2 1101 + -5 + 1010 ---- ------ -7 10111 ---- + 1 ------ 1000

-3 1100 + -7 + 1000 ---- ------- -10 10100 ---- + 1 ------- 0101

¿Cualquier sobreflujo?

Números en punto fijo • En la representación de punto fijo, el punto binario

se asume que esta en una locación fija.– Por ejemplo, si el punto binario esta en la parte final de

una representación de 8-bit como se muestra abajo, este puede representar enteros de -128 to +127.

punto binario

Números de punto fijo • En general, el punto binario puede ser asumido

para estar en cualquier locación pre-fijada.– Ejemplo: Dos bits fraccionales son asumidos como se

muestra abajo.

Si el complemento a 2s es usado, se pueden representar valores como:

011010.112s = 26.7510

111110.112s = -000001.012 = -1.2510

punto binario asumidoparte entera Parte fraccionaria

Números de punto flotante• Los números de punto fijo tienen un rango

limitado.• Los números de punto flotante permiten

representar números muy grandes o muy pequeños .

• Ejemplos:0.23 × 1023 (números positivos muy grandes)0.5 × 10-37 (números positivos muy pequeños)-0.2397 × 10-18 (números negativos muy

pequeños)

Números de punto flotante• 3 partes: signo, mantisa y exponente• La base (radix) se asume para que sea 2.• Bit de signo: 0 para positivo, 1 para negativo.

signo mantisa exponente

La mantisa esta usualmente en forma normalizada (la parte entera es cero y la parte fraccionaria no debe empezar con cero)

0.01101 × 24 normalizada 101011.0110 × 2-4 normalizada

Trueque: Más bits en la mantisa mejor precisión Más bits en el exponente mayor rango de valores

Números de punto flotante • El exponente es usualmente expresado en complemento

o formato en exceso.

• Ejemplo: Exprese -6.510 en base-2 en forma normalizada-6.510 = -110.12 = -0.11012 × 23

• Asumiendo que la representación de punto-flotante contiene 1-bit, 5-bit de mantisa normalizada, y 4-bit de exponente. El ejmplo de arrriba será almacenado como si el exponente esta en complemento a 1s o 2s.

1 11010 0011

Números de punto flotante• Ejemplo: Expresar 0.187510 en base-2 forma normalizada

0.187510 = 0.00112 = 0.11 × 2-2

• Asumir esta representación en punto flotante:1-bit de signo, 5-bit de mantisa normalizada, y 4-bit de exponente.

• El ejemplo de arriba será representado como

0 11000 1101 Si el exponente esta en complemento a 1s .

0 11000 1110 Si el exponente esta en complemento a 2s

0 11000 0110 Si el exponente esta en exceso a -8.

Resumen del Capítulo

• Los sistemas digitales nos rodean− Dentro de las computadoras− Dentro de una gran variedad de otros dispositivos electrónicos (sistemas

embebidos).

• Los sistemas digitales utilizan 1’s y 0’s.− Codificar señales analógicas en señales digitales puede ofrecer muchos

beneficios.▫ Por ejemplo, de audio – alta calida de almacenamiento/transmisión,

compresión, etc.− Codificación de enteros como 0’s y 1’s: Los números binarios