91
Nombre del curso: “Sistemas Digitales” Nombre del docente: Héctor Vargas Fecha: 1 er semestre de 2011 EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

Sistemas de numeración, operaciones y códigos

Embed Size (px)

Citation preview

Page 1: Sistemas de numeración, operaciones y códigos

Nombre del curso: “Sistemas Digitales”

Nombre del docente: Héctor Vargas

Fecha: 1er semestre de 2011

EIE 446 - SISTEMAS DIGITALES

Tema 2: Sistemas de Numeración, Operaciones y Códigos

Page 2: Sistemas de numeración, operaciones y códigos

INTRODUCCIÓN

● El sistema de numeración binario y los códigos digitales son fundamentales

en las computadoras y, en general, en la electrónica digital.

● Esta unidad está enfocada principalmente al sistema de numeración binario y

sus relaciones con otros sistemas de numeración tales como el decimal,

hexadecimal y octal.

● Se cubren las operaciones aritméticas con números binarios con el fin de

proporcionar una base para entender cómo trabajan las computadoras y

muchos otros tipos de sistemas digitales.

● También se abordan códigos digitales como el código decimal binario (BCD,

Binary Code Decimal), el código Gray y el ASCII.

● Se presenta el método de paridad para la detección de errores en los códigos

y se describe un método para corregir dichos errores.

Page 3: Sistemas de numeración, operaciones y códigos

NÚMEROS DECIMALES

● Todos estamos familiarizados con el sistema de numeración decimal porque

los usamos cada día.

● Aunque los números decimales son triviales, a menudo, su estructura de

pesos no se comprende. En lo sucesivo, revisaremos la estructura de los

números decimales.

● Esto ayudará a entender más fácilmente la estructura del sistema de

numeración binario, que es tan importante en las computadoras y la

electrónica digital.

Page 4: Sistemas de numeración, operaciones y códigos

NÚMEROS DECIMALES

● A la posición de cada número en un “sistema de numeración posicional” se le

asigna un “peso” basado en la base o radix del sistema. El radix de los

números decimales es 10, porque sólo se utilizan 10 símbolos (de 0 a 9) para

representar cualquier número.

…105 104 103 102 101 100.

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

● Los pesos de las columnas de números decimales son potencias de 10 que se

incrementan de derecha a izquierda empezando por 100 =1.

● Para números decimales fraccionales, los pesos de las columnas son

potencias negativas de 10 que disminuyen de izquierda a derecha.

Page 5: Sistemas de numeración, operaciones y códigos

NÚMEROS DECIMALES

● Los números decimales se pueden expresar como la “suma de productos” de

cada dígito por los valores de las columnas (potencias de 10) para ese dígito.

Así, el número 9240 se puede expresar como:

(9 x 103) + (2 x 102) + (4 x 101) + (0 x 100)

ó

9 x 1000 + 2 x 100 + 4 x 10 + 0 x 1

Expresar el número 480.52 como la suma de valores

de cada dígito.

480.52 = (4 x 102) + (8 x 101) + (0 x 100) + (5 x 10-1) +(2 x 10-2)

Page 6: Sistemas de numeración, operaciones y códigos

NÚMEROS BINARIOS

● El sistema de numeración binario es simplemente otra forma de representar

magnitudes.

● El sistema binario es menos complicado que el decimal ya que solo tiene dos

dígitos. Al principio puede parecer complicado por no ser familiar.

● El sistema decimal con sus diez dígitos es un sistema en base diez, el

sistema binario con sus dos dígitos es un sistema en base dos.

● Los dos dígitos binarios (bits) son 1 y 0. La posición de un 1 o un 0 indican su

peso o valor en un número de la misma manera que en el sistema decimal.

Page 7: Sistemas de numeración, operaciones y códigos

NÚMEROS BINARIOS

● Para los sistemas digitales, se utiliza el sistema de numeración binario. El

sistema binario tiene un radix de 2 y utiliza los dígitos 0 y 1 para representar

cantidades.

● Los pesos de columna para números binarios son potencias de 2 que

aumentan de derecha a izquierda empezando por 20 =1.

…25 24 23 22 21 20.

● Para números binarios fraccionales, los pesos de las columnas son potencias

negativas de 2 que disminuyen de izquierda a derecha.

22 21 20. 2-1 2-2 2-3 2-4 …

Page 8: Sistemas de numeración, operaciones y códigos

NÚMEROS BINARIOS

● A la derecha se muestra una secuencia de conteo

binario para los números decimales de 0 a 15.

● Observe los patrones de ceros y unos de cada columna.

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

8 1 0 0 0

9 1 0 0 1

10 1 0 1 0

11 1 0 1 1

12 1 1 0 0

13 1 1 0 1

14 1 1 1 0

15 1 1 1 1

Número

Decimal

Número

Binario

● Los Contadores Digitales tienen comúnmente el

mismo patrón de dígitos.

Counter Decoder1 0 1 0 1 0 1 00 1

0 1 1 0 0 1 1 00 0

0 0 0 1 1 1 1 00 0

0 0 0 0 0 0 0 10 1

Page 9: Sistemas de numeración, operaciones y códigos

CONVERSIÓN BINARIO A DECIMAL

● El equivalente decimal de un número binario se puede determinar sumando

los valores de las columnas de todos los bits que son 1 y descartando todos

los bits que son 0.

Convertir el número binario 100101.01 a decimal.

Comience por escribir la columna de pesos; luego sumar

los pesos que corresponden a cada 1 en el número.

25 24 23 22 21 20. 2-1 2-2

32 16 8 4 2 1 . ½ ¼

1 0 0 1 0 1. 0 1

32 +4 +1 +¼ = 37¼

Page 10: Sistemas de numeración, operaciones y códigos

CONVERSIÓN DECIMAL A BINARIO

1. Método de la suma de pesos: Se puede convertir un número entero

decimal en uno binario revirtiendo el procedimiento. Para ello:

Escribir el peso decimal de cada columna y poner 1’s en las

columnas que suman el número decimal.

Convertir el número decimal 49 a binario.

Poner 1s en las posiciones de pesos adecuadas de tal

manera que la suma corresponda al número decimal.

26 25 24 23 22 21 20.

64 32 16 8 4 2 1.

0 1 1 0 0 0 1.

● En la diapositiva anterior vimos cómo convertir un número binario en el

número decimal equivalente. Ahora vamos a aprender dos métodos para

convertir un número decimal en un número binario.

Page 11: Sistemas de numeración, operaciones y códigos

CONVERSIÓN DECIMAL A BINARIO

2. Método de la división sucesiva por 2: Se puede convertir un decimal a

cualquier base dividiendo repetidamente por la base. En el caso binario,

dividir repetidamente por 2. La condición de parada se produce cuando

la parte entera del cociente es 0.

1 0 0 1 1 0

Convertir el número decimal 49 a binario dividiendo

repetidamente por 2.

Se puede hacer por “división en reversa” y la respuesta se

leerá de izquierda a derecha. Poner cuocientes a la

izquierda y restos encima.

49 2

Número

decimal base

24

resto

Cociente

12 6 3 1 0 Continúe hasta el

último cuociente es 0

Respuesta:

Page 12: Sistemas de numeración, operaciones y códigos

CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO

● Se puede convertir un número decimal fraccionario a binario

multiplicando repetidamente los resultados fraccionales de sucesivas

multiplicaciones por 2. Los acarreos forman el número binario.

Convertir el decimal fraccionario 0.188 a binario

multiplicando los resultados fraccionales por 2.

0.188 x 2 = 0.376 acarreo = 0 0.376 x 2 = 0.752 acarreo = 0 0.752 x 2 = 1.504 acarreo = 1 0.504 x 2 = 1.008 acarreo = 1 0.008 x 2 = 0.016 acarreo = 0

Respuesta = .00110 (para 5 dígitos significativos)

MSB

Page 13: Sistemas de numeración, operaciones y códigos

ARITMÉTICA BINARIA

● La aritmética binaria es esencial en todas las computadoras digitales y en

muchos otros tipos de sistemas digitales.

● Para entender los sistemas digitales, debe conocer los principios básicos de

la suma, resta, multiplicación y división binarias. En lo sucesivo se

introducen estos temas.

Page 14: Sistemas de numeración, operaciones y códigos

SUMA BINARIA

● Las reglas básicas para la suma binaria son:

0 + 0 = 0 Suma = 0, acarreo = 0

0 + 1 = 1 Suma = 1, acarreo = 0

1 + 0 = 1 Suma = 1, acarreo = 0

1 + 1 = 10 Suma = 0, acarreo = 1

● Cuando hay un acarreo de entrada = 1 debido a un resultado previo,

las reglas son:

1 + 0 + 0 = 01 Suma = 1, acarreo = 0

1 + 0 + 1 = 10 Suma = 0, acarreo = 1

1 + 1 + 0 = 10 Suma = 0, acarreo = 1

1 + 1 + 1 = 11 Suma = 1, acarreo = 1

Page 15: Sistemas de numeración, operaciones y códigos

SUMA BINARIA

Sumar los números binarios 00111 y 10101 y mostrar la

suma decimal equivalente.

00111 7

10101 21

0

1

0

1

1

1

1

0

1 28 =

Page 16: Sistemas de numeración, operaciones y códigos

RESTA BINARIA

● Las reglas básicas para la resta binaria son:

0 - 0 = 0

1 - 1 = 0

1 - 0 = 1

10 - 1 = 1 con un adeudo de 1

Restar el número binario 00111 a 10101 y mostrar la

resta decimal equivalente.

00111 7 10101 21

0

/

1

1 1 1 0 14

/

1

/

1

=

Page 17: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN BINARIA

● Las reglas básicas para la multiplicación binaria son:

0 0 = 0 0 1 = 0 1 0 = 0

1 1 = 1

● La multiplicación con números binarios se realiza de la misma forma que

con números decimales. Se realizan los productos parciales, desplazando

cada producto parcial sucesivo una posición a la izquierda, y sumando luego

todos los productos parciales.

Multiplicar el número binario 110100010101 con 1101.

Page 18: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN BINARIA

Multiplicar el número binario 110100010101 con 1101.

334913 = 43537

Page 19: Sistemas de numeración, operaciones y códigos

DIVISIÓN BINARIA

● Estudiar del libro base …

Page 20: Sistemas de numeración, operaciones y códigos

COMPLEMENTO A 1 Y 2 DE NÚMEROS BINARIOS

● El complemento a 1 y el complemento a 2 de un número binario son

importantes porque permiten la representación de números negativos.

● La aritmética en complemento a 2 se usa comúnmente en las computadoras

para manipular números negativos.

Page 21: Sistemas de numeración, operaciones y códigos

COMPLEMENTO A 1

● El complemento a 1 de un número binario es solo la inversión de los

dígitos. Para formar el complemento a 1, cambiar todos los 0’s a 1’s y

todos los 1’s a 0’s.

Por ejemplo, el complemento a 1 de 11001010 es

00110101

1 1 0 0 1 0 1 0

0 0 1 1 0 1 0 1

● En circuitos digitales, el complemento a 1 se forma utilizando inversores:

Page 22: Sistemas de numeración, operaciones y códigos

COMPLEMENTO A 2

● El complemento a 2 de un número binario se obtiene sumando 1 al LSB del

complemento a 1.

Recordamos que el complemento a 1 de 11001010 es

00110101 (complemento a 1)

Para formar el complemento a 2, sumar 1: +1

00110110 (complemento a 2)

Adder

Input bits

Output bits (sum)

Carry

in (add 1)

1 1 0 0 1 0 1 0

0 0 1 1 0 1 0 1

1

0 0 1 1 0 1 1 0

Page 23: Sistemas de numeración, operaciones y códigos

COMPLEMENTO A 2

● Un método alternativo para obtener el complemento a 2 de un número

binario es el siguiente:

1. Se empieza por la derecha con el LSB y se escriben los bits como están

hasta encontrar el primer 1, incluido éste.

2. Se calcula el complemento a 1 de los bits restantes.

Calcular el complemento a 2 de 10111000.

Page 24: Sistemas de numeración, operaciones y códigos

NÚMEROS CON SIGNO

● Los sistemas digitales, tales como las computadoras, deben ser capaces de

manejar números positivos y negativos.

● Un número binario con signo queda determinado por su magnitud y su

signo. El signo indica si un número es positivo o negativo, y la magnitud el

valor del número.

● Existen tres formatos binarios para representar los números enteros con

signo: signo-magnitud, complemento a 1 y complemento a 2.

● Los números no enteros y muy grandes o muy pequeños pueden expresarse

en formato de coma flotante.

Page 25: Sistemas de numeración, operaciones y códigos

BIT DE SIGNO

● El bit más a la izquierda de un número binario con signo es el bit de signo,

que indica si el número es positivo o negativo. “Un bit se signo 0 indica

que es un número positivo y un bit de signo igual a 1 indica que es un

número negativo”.

FORMATO SIGNO Y MAGNITUD

● Cuando un número binario con signo se representa en este formato, el bit

más a la izquierda es el bit de signo y los restantes bits son de magnitud.

Por ejemplo, el número decimal positivo +25 se escribe usando

8-bits como 00011001 (forma real).

bit de Signo bits de Magnitud

El -25 se expresa como 10011001 (forma real).

bit de Signo bits de Magnitud

Page 26: Sistemas de numeración, operaciones y códigos

FORMATO DEL COMPLEMENTO A 1

● Los números positivos en formato de complemento a 1 se representan igual

que los números positivos del formato signo-magnitud. Sin embargo, los

números negativos son el complemento a 1 del correspondiente número

positivo.

Por ejemplo, con ocho bits, el número decimal -25 se expresa

como el complemento a 1 de +25 (00011001) como 11100110.

“En formato complemento a 1, un número

negativo es el complemento a 1 del

correspondiente número positivo”

Page 27: Sistemas de numeración, operaciones y códigos

FORMATO DEL COMPLEMENTO A 2

● Los números positivos en formato de complemento a 2 se representan igual

que los números positivos del formato signo-magnitud y complemento a 1.

Sin embargo, los números negativos son el complemento a 2 del

correspondiente número positivo.

Por ejemplo, con ocho bits, el número decimal -25 se expresa

como el complemento a 2 de +25 (00011001) como 11100111.

“En formato complemento a 2, un número

negativo es el complemento a 2 del

correspondiente número positivo”

Page 28: Sistemas de numeración, operaciones y códigos

VALOR DECIMAL DE LOS NÚMEROS CON SIGNO

● Signo y magnitud. Los valores decimales de los números positivos y

negativos en el formato signo-magnitud se determinan sumando los pesos

de todas las posiciones de los bits de magnitud que tienen 1 e ignorando

las posiciones donde haya ceros. El signo se determina examinando el bit

de signo.

Determinar el valor decimal del número binario con signo

expresado como signo-magnitud 10010101:

0 0 1 0 1 0 1

Pesos de columnas: 64 32 16 8 4 2 1.

16 + 4 + 1 = -21

Page 29: Sistemas de numeración, operaciones y códigos

VALOR DECIMAL DE LOS NÚMEROS CON SIGNO

● Complemento a 1. Los valores decimales de los números positivos se

determinan sumando los pesos de todas las posiciones de los bits de

magnitud que tienen 1 e ignorando las posiciones donde haya ceros. Los

números negativos se determinan asignando el valor negativo al peso del

bit de signo, y sumando todos los pesos donde haya 1s y sumando 1 al

resultado.

Determinar los valores decimales de los números

binarios con signo expresados en complemento a 1:

a) 00010111

b) 11101000

Page 30: Sistemas de numeración, operaciones y códigos

VALOR DECIMAL DE LOS NÚMEROS CON SIGNO

● Complemento a 2. Los valores decimales de los números positivos se

determinan sumando los pesos de todas las posiciones de los bits de

magnitud que tienen 1 e ignorando las posiciones donde haya ceros. El

peso del bit de signo en un número negativo viene dado por su valor

negativo.

Determinar los valores decimales de los números

binarios con signo expresados en complemento a 2:

a) 01010110

b) 10101010

Page 31: Sistemas de numeración, operaciones y códigos

RANGO DE REPRESENTACIÓN DE LOS NÚMEROS CON SIGNO

● En la mayoría de los ejemplos se han utilizado números de 8 bits, puesto

que la agrupación de 8 bits es un estándar en la mayoría de los sistemas

digitales y recibe el nombre de byte.

● Con 8 bits se pueden representar 256 números diferentes.

● Combinando 2 bytes (16 bits) se pueden representar 65.536 números

diferentes.

● Combinando 4 bytes (32 bits) se pueden representar 4.295x109 números

diferentes.

● Y así sucesivamente …….

Page 32: Sistemas de numeración, operaciones y códigos

RANGO DE REPRESENTACIÓN DE LOS NÚMEROS CON SIGNO

● La fórmula para calcular el número de combinaciones diferentes es:

Número total de combinaciones = 2n

-(2n-1) a +(2n-1-1)

● Para los números con signo en complemento a 2, el rango de valores para

números de n bits es:

● Habiendo en cada caso un bit de signo y n-1 bits de magnitud. Por ejemplo,

con cuatro bits pueden representarse números en complemento a 2 en el

rango de –(23) = -8 hasta +(23 - 1) = +7. Igualmente, con ocho bits, se

pueden abarcar desde -128 hasta +127; con 16 bits se puede ir desde -

32.768 a 32.767, y así sucesivamente …

Page 33: Sistemas de numeración, operaciones y códigos

NÚMEROS EN COMA FLOTANTE

● Para representar números enteros muy grandes, son necesarios muchos

bits. También se producen problemas cuando queremos representar

números con parte fraccionaria, tal como 23,5618.

● El número en coma flotante (también conocido como número real) tiene

dos partes más un signo. La mantisa que representa la magnitud del

número. El exponente que representa el número de lugares que se va a

desplazar el punto decimal (o binario).

● Por ejemplo el número decimal 241.506.800 puede ser reescrito en

formato de coma flotante tomando 0,2415068 como mantisa y 9 como

exponente. Queda finalmente:

0,2415068 x 109

Page 34: Sistemas de numeración, operaciones y códigos

NÚMEROS EN COMA FLOTANTE

● Para los números en coma flotante binarios, el formato definido por el

estándar 754/1985 ANSI/IEEE puede tomar tres formas: simple precisión

(compuesto por 32 bits), doble precisión (compuesto por 64 bits) y

precisión ampliada (80 bits).

● Restringiremos la explicación al formato en coma flotante de precisión

simple el cual se ilustra a continuación.

S E (8 bits) F (23 bits)

Bit de signo Mantisa (parte fraccionaria, F) Exponente

desplazado (E) (+127)

Page 35: Sistemas de numeración, operaciones y códigos

NÚMEROS EN COMA FLOTANTE

● Un ejemplo para ilustrar como un número binario se expresa en formato de

coma flotante: 1011010010001.

Page 36: Sistemas de numeración, operaciones y códigos

NÚMEROS EN COMA FLOTANTE

Expresar la velocidad de la luz, c, en notación de punto flotante

de precisión simple binario. (c = 0.2998 x 109)

En notación científica, c = 1.0001 1101 1110 1001 0101 1100 0000 x 228.

0 10011011 0001 1101 1110 1001 0101 110

En binario, c = 0001 0001 1101 1110 1001 0101 1100 00002.

S = 0 porque el número es positivo. E = 28 + 127 = 15510 = 1001 10112.

F son los siguientes 23 bits descartando el primer 1.

En notación de punto flotante, c =

Page 37: Sistemas de numeración, operaciones y códigos

NÚMEROS EN COMA FLOTANTE

● Para evaluar un número binario que ya está en formato de coma flotante

se utiliza la siguiente fórmula.

Número = (-1)S(1 + F)(2E-127)

● Por ejemplo, consideremos el siguiente número binario en coma flotante.

1 10010001 1000 1110 0010 0000 0000 000

● El bit de signo es 1. El exponente desplazado es 10010001 = 145. Aplicando

la fórmula, obtenemos

Número = (-1)1(1.10001110001)(2145-127)

= (-1)(1.10001110001)(218) = -1100011100010000000

Este número es equivalente al -407.688 en decimal.

Page 38: Sistemas de numeración, operaciones y códigos

OPERACIONES ARITMÉTICAS DE NÚMEROS CON SIGNO

● Hemos aprendido como se representan, en tres formatos diferentes, los

números con signo. Ahora, estudiaremos como se suman, restan,

multiplican y dividen estos números.

● Dado que el complemento a 2 es el sistema de representación de números

con signo más ampliamente utilizado en las computadoras y

microprocesadores, en lo sucesivo veremos la aritmética de números con

signo en complemento a 2.

● Los procedimientos que veremos pueden perfectamente extenderse a los

demás sistemas.

Page 39: Sistemas de numeración, operaciones y códigos

SUMA

● Los dos números en una suma se denominan sumandos. El resultado es la

suma. Cuando se suman dos números binarios con signo pueden producirse

cuatro casos:

1. Ambos números son positivos.

2. El número positivo es mayor que el negativo en valor absoluto.

3. El número negativo es mayor que el positivo en valor absoluto.

4. Ambos números son negativos.

● Ahora veremos caso por caso, utilizando números de 8 bits como ejemplo.

Se pondrán como referencia los números decimales equivalentes.

Page 40: Sistemas de numeración, operaciones y códigos

SUMA

● Caso 1: Ambos números son positivos.

00000111 7

00000100 4

1

0

1

0

0

1

1

0

0 11 = 0 0 0 +

La suma es positiva y, por tanto,

es un número binario real (no

complementado).

● Caso 2: El número positivo es mayor que el número negativo en

valor absoluto.

00001111 15

11111010 + -6

1

0

0

1

0

1

1

1

0 9 = 0 0 0 +

El bit de acarreo final no se tiene

en cuenta. La suma es positiva y,

por tanto, es un número binario real

(no complementado). 1 Descartar acarreo

1 1 1

Page 41: Sistemas de numeración, operaciones y códigos

SUMA

● Caso 3: El número negativo es mayor que el número positivo en

valor absoluto.

La suma es negativa y, por tanto,

está en complemento a 2.

● Caso 4: Ambos números son negativos.

El bit de acarreo final no se tiene en

cuenta. La suma es negativa y, por

tanto, está en complemento a 2.

00010000 16

11101000 + -24

0

0

0

0

0

0

1

0

1 -8 = 1 1 1 +

0 0 0

11111011 -5

11110111 + -9

0

1

1

1

0

1

0

1

1 -14 = 1 1 1 +

1 Descartar acarreo

1 1 1

● En una computadora, los números negativos se almacenan en formato

complemento a 2, por lo que, como se pudo apreciar, el procedimiento de

suma es muy sencillo:

“sumar los dos números y descartar cualquier bit de acarreo final”

Page 42: Sistemas de numeración, operaciones y códigos

CONDICIÓN DE DESBORDAMIENTO (OVERFLOW)

● Cuando se suman dos números y el número de bits requeridos para

representar la suma excede el número de bits de los dos números, se

produce un desbordamiento, que se indica mediante un bit de signo

incorrecto.

● NOTA: Un desbordamiento se produce sólo cuando ambos números son

positivos o negativos.

Ejemplo de desbordamiento con

números de 8 bits.

01111101 +125

00111010 + 58

1

0

1

0

1

0

0

1

1 183 = 1 0 1 +

Signo y magnitud

incorrecta

1 1 1

● En el ejemplo anterior, la suma 183 requiere 8 bits de magnitud. Puesto

que los números tienen sólo 7 bits de magnitud, se produce un acarreo en

el bit de signo que da lugar a la indicación de desbordamiento.

Page 43: Sistemas de numeración, operaciones y códigos

RESTA

● La resta es un caso especial de la suma. Por ejemplo: restar +6 (el

sustraendo) de +9 (el minuendo) es equivalente a sumar -6 a +9.

● Básicamente, la operación de resta consiste en cambiar el signo del

sustraendo y sumarlo al minuendo. El resultado de una resta se denomina

diferencia.

● El signo de un número binario positivo o negativo se cambia tomando su

complemento a 2.

● Puesto que la sustracción o resta es simplemente una suma con el signo

del sustraendo cambiado, el proceso se define del siguiente modo:

“Para restar dos números con signo, se calcula el complemento a 2 del

sustraendo y se suman. Cualquier bit de acarreo final se descarta”.

Page 44: Sistemas de numeración, operaciones y códigos

RESTA

Page 45: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN

● Los números en una multiplicación se denominan multiplicando,

multiplicador y producto. La siguiente multiplicación decimal ilustra estos

términos.

● Comúnmente, la operación de multiplicación se realiza utilizando la suma.

(Recordar que la resta igual se hace como una suma).

● Existen dos métodos para realizar la multiplicación de números con signo.

Ellos son:

1. El método de la suma directa.

2. El método de los productos parciales.

Page 46: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN

● Método 1. En el método de la suma directa, se suma el multiplicando un

número de veces igual al multiplicador. Método no eficiente ya que si el

multiplicador es muy grande, la suma será muy larga.

● Método 2. El método de los productos parciales es el más común ya que es

la forma de multiplicar manualmente. El signo del producto de una

multiplicación depende de los signos del multiplicando y del multiplicador,

de acuerdo con las dos reglas siguientes:

Si son del mismo signo, el producto es positivo.

Si son de diferente signo, el producto es negativo.

Page 47: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN

4. Paso 4. Sumar cada producto parcial a la suma de los productos parciales

anteriores para obtener el producto final.

1. Paso 1. Determinar si los signos del multiplicando y el multiplicador son

diferentes. Así determinamos el signo del producto.

2. Paso 2. Poner cualquier número negativo en formato real (no

complementado). Puesto que la mayoría de las computadoras almacenan los

números negativos en complemento a 2, se requiere esta operación para

obtener el número negativo en formato real.

3. Paso 3. Empezar por el bit del multiplicador menos significativo y generar los

productos parciales. Cada producto parcial debe desplazarse un bit a la

izquierda.

● El procedimiento del método se resume a continuación:

5. Paso 5. Si el bit de signo que se había determinado en el paso 1 es negativo,

calcular el complemento a 2 del producto. Si es positivo, dejarlo en formato

real. Añadir el bit de signo al producto.

Page 48: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN

● Multiplicar los siguientes números con signo:

1. 01010011 (multiplicando) – 11000101 (multiplicador).

2. Verificar que la multiplicación es correcta convirtiendo los binarios a

decimales y realizando la multiplicación.

Page 49: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN

Page 50: Sistemas de numeración, operaciones y códigos

MULTIPLICACIÓN

Page 51: Sistemas de numeración, operaciones y códigos

DIVISIÓN

● Los números en una división se denominan dividendo, divisor y cociente.

● En los computadores, la operación de división se lleva a cabo usando la

resta. Puesto que la resta se puede realizar como una suma, la división

también se puede llevar a cabo con un sumador.

● El signo del cociente depende de los signos del dividendo y del divisor, de

acuerdo con las dos reglas siguientes:

1. Si son del mismo signo, el cociente es positivo.

2. Si son de diferente signo, el cociente es negativo.

Page 52: Sistemas de numeración, operaciones y códigos

DIVISIÓN

Continuar restando el divisor del dividendo y los restos parciales hasta que

el resultado sea cero o negativo. Contar el número de veces que se ha

restado el divisor y se obtendrá el cociente.

1. Paso 1. Determinar si los signos del dividendo y el divisor son

diferentes. Esto determina que signo tendrá el cociente. Inicializar el

cociente a cero.

2. Paso 2. Restar el divisor del dividendo utilizando la suma en

complemento a 2, para obtener el primer resto parcial, y sumar 1 al

cociente. Si este resto parcial es positivo, ir al paso 3. Si el resto

parcial es cero o negativo, la división se ha terminado.

3. Paso 3. Restar el divisor del resto parcial y sumar 1 al cociente. Si el

resultado es positivo, repetir el siguiente resto parcial. Si el resultado

es cero o negativo, la división se ha terminado.

● El procedimiento para dividir dos números se resume a continuación:

Page 53: Sistemas de numeración, operaciones y códigos

DIVISIÓN

● Dividir los siguientes números con signo:

1. 01100100 (dividendo) – 00011001 (divisor).

2. Verificar que la división es correcta convirtiendo los binarios a

decimales y realizando la división.

Page 54: Sistemas de numeración, operaciones y códigos

DIVISIÓN

Page 55: Sistemas de numeración, operaciones y códigos

DIVISIÓN

Page 56: Sistemas de numeración, operaciones y códigos

NÚMEROS HEXADECIMALES

● El sistema de numeración hexadecimal consta de dieciséis dígitos y se usan

fundamentalmente como una forma simplificada de representar o escribir

los números binarios, ya que es muy fácil la conversión entre binario y

hexadecimal.

● Los números binarios largos son difíciles de leer y escribir, ya que es fácil

omitir o trasponer un bit. La representación hexadecimal ayuda a

solventar esta limitante al reducir la cantidad de símbolos en la notación.

● El sistema hexadecimal se usa frecuentemente en computadoras y

aplicaciones de microprocesadores.

Page 57: Sistemas de numeración, operaciones y códigos

NÚMEROS HEXADECIMALES

● La representación Hexadecimal usa

dieciséis caracteres para representar

números: los números del 0 al 9 y los

caracteres alfabéticos de la A a la F.

● Para contar en hexadecimal por sobre la

F, sencillamente se inicia otra columna y

se continúa de la siguiente manera.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Decimal Hexadecimal Binario

10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B,

1C, 1D, 1E, 1F, 20, 21, 22, ….

Page 58: Sistemas de numeración, operaciones y códigos

CONVERSIÓN BINARIO - HEXADECIMAL

● La conversión de un número binario en hexadecimal es un procedimiento

muy sencillo. Simplemente, se parte el número binario en grupos de 4 bits,

comenzando por el bit más a la derecha, y se reemplaza cada grupo de 4 bits

por su símbolo hexadecimal equivalente, como ilustra abajo.

1100 1010 0101 01112

C A 5 7 = CA5716

0011 1111 0001 0110 10012

3 F 1 6 9 = 3F16916

CONVERSIÓN HEXADECIMAL - BINARIO

● Para convertir un número hexadecimal en un número binario se realiza el

proceso inverso, reemplazando cada símbolo hexadecimal por el grupo de

cuatro bits adecuado.

1 0000 0101 01002

1 0 A 4

Page 59: Sistemas de numeración, operaciones y códigos

CONVERSIÓN HEXADECIMAL - DECIMAL

● Un método para encontrar el equivalente decimal de un número

hexadecimal es, primero, convertir el hexadecimal a binario y luego el

binario a decimal. Abajo se ilustra un ejemplo.

● Otro método para convertir un número hexadecimal a su equivalente

decimal es multiplicar el valor decimal de cada dígito hexadecimal por su

peso, y finalmente, realizar la suma de estos productos.

0001 11002 = 24 + 23 + 22 = 16 + 8 + 4 = 2810

1 C

B2F816 = (Bx4096) + (2x256) + (Fx16) + (8x1)

= (11x4096) + (2x256) + (15x16) + (8x1)

= 45056 + 512 + 240 + 8 = 4581610

Page 60: Sistemas de numeración, operaciones y códigos

CONVERSIÓN DECIMAL - HEXADECIMAL

● Al igual que la conversión de decimal a binario, el método de la división

sucesiva por 2 se puede extender a cualquier base. En este caso, la división

sucesiva por 16 de un número decimal generará el número hexadecimal

equivalente formado por los restos de las divisiones. A continuación vemos

como convertir el decimal 650 en hexadecimal.

650/16 = 40,625 0,625 x 16 = 10 = A

40/16 = 2,5 0,5 x 16 = 8 = 8

2/16 = 0,125 0,125 x 16 = 2 = 2

Resultado final = 2 8 A

LSB

Page 61: Sistemas de numeración, operaciones y códigos

SUMA HEXADECIMAL

● Cuando se suman dos números hexadecimales se usan las siguientes reglas:

1. En cualquier columna dada de una suma, pensar en los dos dígitos

hexadecimales en términos de su valor decimal. Por ejemplo, 516 = 510,

C16 = 1210.

2. Si la suma de los dos dígitos es 1510 o menor, reducir al dígito

hexadecimal correspondiente.

3. Si la suma de los dígitos es mayor que 1510, hay que reducir la suma

que excede de 1610 y pasar el acarreo de 1 a la siguiente columna.

Page 62: Sistemas de numeración, operaciones y códigos

SUMA HEXADECIMAL

Page 63: Sistemas de numeración, operaciones y códigos

RESTA HEXADECIMAL USANDO COMPLEMENTO A 2 ● Como ya se sabe, el complemento a 2 permite restar sumando números

binarios. Este método también aplica a la resta en hexadecimal.

Page 64: Sistemas de numeración, operaciones y códigos

NÚMEROS OCTALES

● Octal usa ocho caracteres, los números

del 0 al 7 para representar los números.

No existe el caracter 8 o 9 en octal.

● Los números binarios se pueden convertir

fácilmente a octal al agrupar bits de a 3 y

escribiendo el carácter octal equivalente

para cada grupo.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Decimal Octal Binario

Expresar 1 001 011 000 001 1102 en

octal:

Agrupar los números binarios de a 3-

bits comenzando desde la derecha.

De esta manera, 1130168

Page 65: Sistemas de numeración, operaciones y códigos

NÚMEROS OCTALES

● Octal también es un sistema de

numeración ponderado. Los pesos de las

columnas son potencias de 8, las cuales se

incrementan de derecha a izquierda.

. Pesos de columna 83 82 81 80 512 64 8 1 .

{

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Decimal Octal Binario

3 7 0 28

198610

Expresar 37028 en decimal.

Comenzar por escribir los pesos de las columnas:

512 64 8 1

3(512) + 7(64) +0(8) +2(1) =

Page 66: Sistemas de numeración, operaciones y códigos

CÓDIGO DECIMAL BINARIO (BCD)

● El código decimal binario (BCD) es un

código ponderado que se utiliza

comúnmente en sistemas digitales cuando

se necesita mostrar números decimales

tal como un display de reloj.

● La tabla ilustra la diferencia entre binario

directo y BCD. BCD representa cada dígito

decimal con un código de 4-bit. Observe

que los códigos desde el 1010 al 1111 no

se utilizan en BCD, es decir, son códigos

no válidos.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Decimal Binario BCD

0001

0001

0001

0001

0001

0001

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

0000

0001

0010

0011

0100

0101

Page 67: Sistemas de numeración, operaciones y códigos

CÓDIGO DECIMAL BINARIO (BCD)

● Aquí se muestra un experimento de

laboratorio en el cual el código BCD se

convierte a decimal.

Page 68: Sistemas de numeración, operaciones y códigos

CÓDIGO DECIMAL BINARIO (BCD)

● Se puede pensar en BCD en términos de los pesos de las columnas en grupos

de a cuatro bits. Para un número BCD de 8-bit, los pesos de las columnas

son: 80 40 20 10 8 4 2 1.

¿Cuáles son los pesos de las columnas para el

número BCD 1000 0011 0101 1001?

8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2 1

Observe que se podría agregar los pesos de las columnas donde

hay un 1 para obtener el número decimal equivalente. Para

este caso:

8000 + 200 +100 + 40 + 10 + 8 +1 = 835910

Page 69: Sistemas de numeración, operaciones y códigos

CONVERSIÓN DECIMAL a BCD

● Para expresar cualquier número decimal en BCD, simplemente reemplazar

cada dígito decimal por el apropiado código de 4 bits.

Page 70: Sistemas de numeración, operaciones y códigos

CONVERSIÓN BCD a DECIMAL

● Para expresar cualquier número BCD en decimal, simplemente se comienza

por el bit más a la derecha y se divide el código en grupos de a cuatro.

Luego, se escribe el dígito decimal representado por cada grupo.

Page 71: Sistemas de numeración, operaciones y códigos

SUMA EN BCD

● BCD es un código numérico y puede utilizarse en operaciones aritméticas.

● Veremos sólo la suma en BCD ya que las otras tres operaciones pueden

llevarse a cabo utilizando la suma. Los pasos son los siguientes:

1. Paso 1. Sumar los dos números BCD utilizando las reglas de la suma

binaria vistas en las clases anteriores.

2. Paso 2. Si una suma de 4 bits es igual o menor que 9, es un número BCD

válido.

3. Paso 3. Si una suma de 4 bits es mayor que 9, o si genera un acarreo en

el grupo de 4 bits, el resultado no es válido. En este caso, se suma 6

(0110) al grupo de 4 bits para saltar así los seis estados no válidos y

pasar al código BCD. Si se genera un acarreo al sumar 6, este se suma

al grupo de 4 bits siguientes.

Page 72: Sistemas de numeración, operaciones y códigos

SUMA EN BCD

● Ejemplo sin acarreos…

Page 73: Sistemas de numeración, operaciones y códigos

SUMA EN BCD

● Ejemplos con acarreos …

Page 74: Sistemas de numeración, operaciones y códigos

CÓDIGO GRAY

● El código Gray es un código sin

ponderación que cambia sólo un bit

entre una palabra de código y la

siguiente en una secuencia.

● El código Gray se utiliza para evitar

problemas en sistemas donde un error

puede ocurrir si más de un bit cambia

en una transición en secuencia.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Decimal Binario Cod. Gray

0000

0001

0011

0010

0110

0111

0101

0100

1100

1101

1111

1110

1010

1011

1001

1000

Page 75: Sistemas de numeración, operaciones y códigos

CÓDIGO GRAY

● Un mecanismo codificador de eje es una aplicación típica. Tres

detectores/emisores de infrarrojo IR se utilizan para codificar la posición

del mecanismo. El codificador de la izquierda usa codificación binaria y

puede tener 3-bits que cambian a la vez, lo cual genera una potencial

fuente error. El codificador de la derecha usa código gray y solamente

cambia 1-bit en cada transición, eliminando los errores del sistema.

Secuencia binaria Secuencia cód. Gray

Page 76: Sistemas de numeración, operaciones y códigos

CÓDIGO ASCII

● ASCII es un código de caracteres alfanuméricos y caracteres de control.

● En su forma original, ASCII codifica 128 caracteres y símbolos usando 7

bits. Los primeros 32 caracteres son caracteres de control, que fueron

originalmente requeridos para sistemas teletipo. Hoy en día, estos

caracteres están generalmente asignados a otras funciones más modernas.

● En 1981, IBM introdujo el código ASCII extendido, el cual es un código de

8-bit y se aumento entonces el conjunto de caracteres a 256. Otros

conjuntos de caracteres extendidos (tal como Unicode) se han introducido

para manejar caracteres que entiendan lenguajes distintos al Inglés.

Page 77: Sistemas de numeración, operaciones y códigos

CÓDIGO ASCII

Page 78: Sistemas de numeración, operaciones y códigos

DETECCIÓN DE ERRORES Y CÓDIGOS DE CORRECCIÓN

● Se abordarán dos métodos para sumar bits a códigos para detectar o para

detectar y corregir un error en un único bit.

1. El primero de ellos es el método de paridad para la detección de

errores.

2. El segundo es el método de Hamming para detección y corrección de

un único error.

Page 79: Sistemas de numeración, operaciones y códigos

MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES

● El método de paridad es un método de detección de error para sistemas de

transmisión simples que involucran errores de un bit (o un número impar de

bits).

● Un bit de paridad es un bit “extra” que se adjunta o añade a un grupo de

bits para forzar el número de 1’s a ser par (paridad par) o impar (paridad

impar).

● Un determinado sistema puede funcionar con paridad par o impar, pero no

con ambas. Por ejemplo, si un sistema trabaja con paridad par, una

comprobación que se realice en cada grupo de bits recibidos tiene que

asegurar que el número total de 1s en es grupo es par. Si hay un número

impar de 1s, quiere decir que se ha producido un error.

Page 80: Sistemas de numeración, operaciones y códigos

MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES

● Detección del un error. Un bit de paridad facilita la detección de un único

error de bit (o de cualquier número impar de errores, lo cual es muy

improbable), pero no puede detectar dos errores dentro de un grupo.

● Ejemplo. Si queremos transmitir el código BCD 0101. El código total

transmitido incluyendo el bit de paridad par es:

● Si se produce un error en el tercer bit de la izquierda (el 1 se transmite

como 0).

0 0101

Código BCD

Bit de paridad par

0 0001 Bit de paridad par

Bit erróneo

Cuando se recibe este código, la circuitería de comprobación de paridad determina que sólo

hay un 1 (impar), cuando debería haber un número par de 1s. Puesto que en el código

recibido no aparece un número par de 1s, esto indica que se ha producido un error.

Page 81: Sistemas de numeración, operaciones y códigos

MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES

Page 82: Sistemas de numeración, operaciones y códigos

EL CÓDIGO DE HAMMING DE CORRECCIÓN DE ERRORES

● El código Hamming sirve no solo para detectar un error si no también

proporciona un método de corrección de un único bit erróneo.

● Un código Hamming para detección de errores en un grupo de datos se

construye llevando a cabo tres procesos en secuencia:

1. Número de bits de paridad.

2. Colocación de bits de paridad en el código.

3. Asignación de los valores de los bits de paridad.

Page 83: Sistemas de numeración, operaciones y códigos

EL CÓDIGO DE HAMMING DE CORRECCIÓN DE ERRORES

● Número de bits de paridad. Si el número de bits de datos se designa por d,

entonces el número de bits de paridad, p, se determina mediante la

siguiente expresión: 12 pd

p

● Colocación de los bits de paridad en el código. Los bits de paridad se

sitúan en las posiciones que se han numerado haciéndolas corresponder

con las potencias de dos en sentido ascendente(1,2,4,8,…) como sigue:

4323121 ,,,,,, DDDPDPP

● Asignación de los valores de los bits de paridad. Para terminar, hay que

asignar apropiadamente un valor de 1 o de 0 a cada uno de los bits de

paridad. Para ello se debe confeccionar la tabla siguiente:

Page 84: Sistemas de numeración, operaciones y códigos

EL CÓDIGO DE HAMMING DE CORRECCIÓN DE ERRORES

Page 85: Sistemas de numeración, operaciones y códigos

COMO DETECTAR Y CORREGIR UN ERROR CON HAMMING

● Paso 1. Comenzar con el grupo comprobado por P1.

● Paso 2. Comprobar si el grupo tiene paridad correcta. Un 0 representa que

la comprobación de paridad es correcta y un 1 que es incorrecta.

● Paso 3. Repita el paso 2 para cada grupo de paridad.

● Paso 4. El número binario formado por los resultados de todas las

comprobaciones de paridad indica la posición del bit del código que es

erróneo. Es el código de posición de error. La primera comprobación de

paridad genera el bit menos significativo (LSB). Si todas las

comprobaciones son correctas, no habrá error.

Page 86: Sistemas de numeración, operaciones y códigos

COMO DETECTAR Y CORREGIR UN ERROR CON HAMMING

Page 87: Sistemas de numeración, operaciones y códigos

COMO DETECTAR Y CORREGIR UN ERROR CON HAMMING

Page 88: Sistemas de numeración, operaciones y códigos

PALABRAS CLAVES DE LA UNIDAD

Byte

Número en

punto flotante

Hexadecimal

Octal

BCD

Un grupo de ocho bits

Una representación de números basada en notación

científica en la que el número se compone de un

exponente y una mantisa.

Un sistema numérico en base 16.

Un sistema numérico en base 8.

Decimal codificado en binario; un código digital en el

que cada uno de los dígitos decimales, del 0 al 9, se

representa por un grupo de cuatro bits.

Page 89: Sistemas de numeración, operaciones y códigos

PALABRAS CLAVES DE LA UNIDAD Alfanumérico

ASCII

Paridad

Comprobación de la

redundancia cíclica (CRC)

Consistente en números, letras u otros

caracteres.

Código estándar americano para el

intercambio de información; es el código

alfanumérico más ampliamente utilizado.

En relación a los códigos binarios, la condición

de paridad par o impar está en el número de

1s en un grupo de código.

Un tipo de código de detección de errores.

Page 90: Sistemas de numeración, operaciones y códigos

CONCLUSIONES DE LA UNIDAD

● Vimos los distintos tipos de representación numérica, especialmente los

sistema de numeración posicional caracterizado por los pesos de los dígitos

según la posición que adoptan en el número.

● Vimos como convertir números representados en un sistema de numeración a

otro. Especialmente, vimos los sistemas decimal, binario, hexadecimal y

octal.

● Vimos la aritmética asociada a cada uno de estos sistemas de representación

con números en formato real y formato con signo.

● Vimos la estructura de los códigos binarios más utilizados en sistemas

digitales. Estos son: código BCD (8421), GRAY y ASCII.

● Vimos un método para comprobar o detectar posibles errores de transmisión

en números binarios y la manera de corregirlos.

Page 91: Sistemas de numeración, operaciones y códigos

BIBLIOGRAFÍA

Libro base: “Fundamentos de Sistemas Digitales”. Autor: Tomas L. Floyd.

Libro complemento: “Principios de Diseño Digital”. Autor: Daniel D. Gaski.