Diapositiva 1

Anuncio
EIE 446 - SISTEMAS DIGITALES
Tema 2: Sistemas de Numeración, Operaciones y Códigos
Nombre del curso: “Sistemas Digitales”
Nombre del docente: Héctor Vargas
Fecha: 1er semestre de 2011
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.
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.
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.
● Los pesos de las columnas de números decimales son potencias de 10 que se
incrementan de derecha a izquierda empezando por 100 =1.
…105 104 103 102 101 100.
● Para números decimales fraccionales, los pesos de las columnas son
potencias negativas de 10 que disminuyen de izquierda a derecha.
102 101 100. 10-1 10-2 10-3 10-4 …
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)
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.
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 …
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.
● Los Contadores Digitales tienen comúnmente el
mismo patrón de dígitos.
Counter
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
Decoder
Número
Decimal
Número
Binario
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
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¼
CONVERSIÓN DECIMAL A BINARIO
● 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.
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.
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.
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.
resto
1 1 0 0 0 1
0 1 3 6 12 24 49 2
Respuesta:
Continúe hasta el
último cuociente es 0
Cociente
Número
decimal
base
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
0.376 x 2 = 0.752
0.752 x 2 = 1.504
0.504 x 2 = 1.008
0.008 x 2 = 0.016
acarreo = 0
acarreo = 0
acarreo = 1
acarreo = 1
acarreo = 0
MSB
Respuesta = .00110 (para 5 dígitos significativos)
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.
SUMA BINARIA
● Las reglas básicas para la suma binaria son:
0+
0+
1+
1+
0=
1=
0=
1=
0
1
1
10
Suma = 0,
Suma = 1,
Suma = 1,
Suma = 0,
acarreo =
acarreo =
acarreo =
acarreo =
0
0
0
1
● Cuando hay un acarreo de entrada = 1 debido a un resultado previo,
las reglas son:
1+
1+
1+
1+
0 + 0 = 01
0 + 1 = 10
1 + 0 = 10
1 + 1 = 11
Suma = 1, acarreo = 0
Suma = 0, acarreo = 1
Suma = 0, acarreo = 1
Suma = 1, acarreo = 1
SUMA BINARIA
Sumar los números binarios 00111 y 10101 y mostrar la
suma decimal equivalente.
0111
00111
7
10101 21
11100 = 28
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.
1 11
/ / /
10101
21
00111
7
01110 = 14
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.
MULTIPLICACIÓN BINARIA
Multiplicar el número binario 110100010101 con 1101.
334913 = 43537
DIVISIÓN BINARIA
● Estudiar del libro base …
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.
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
● En circuitos digitales, el complemento a 1 se forma utilizando inversores:
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
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)
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
Input bits
Carry
in
Adder
Output bits (sum)
0
0
1
1
0
1
1
0
(add 1)
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.
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.
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
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”
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”
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:
Pesos de columnas: 64 32 16 8 4 2 1.
0 0 1 0 1 0 1
16 + 4 + 1 = -21
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
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
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 …….
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
● Para los números con signo en complemento a 2, el rango de valores para
números de n bits es:
-(2n-1)
a
+(2n-1-1)
● 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 …
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
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)
Bit de signo
Exponente
desplazado (E) (+127)
F (23 bits)
Mantisa (parte fraccionaria, F)
NÚMEROS EN COMA FLOTANTE
● Un ejemplo para ilustrar como un número binario se expresa en formato de
coma flotante: 1011010010001.
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 binario, c = 0001 0001 1101 1110 1001 0101 1100 0000 2.
En notación científica, c = 1.0001 1101 1110 1001 0101 1100 0000 x 228.
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 = 0 10011011 0001 1101 1110 1001 0101 110
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.
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.
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.
SUMA
● Caso 1: Ambos números son positivos.
01 0 0
+
00000111
7
00000100
4
000 010 11 = 11
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.
11111 1 0
Descartar acarreo
00001111
15
+ 11111010 + -6
1 000010 01 = 9
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).
SUMA
● Caso 3: El número negativo es mayor que el número positivo en
valor absoluto.
0000 00 0
+
00010000
16
11101000 + -24
111110 00 = -8
La suma es negativa y, por tanto,
está en complemento a 2.
● Caso 4: Ambos números son negativos.
11111 1 1
Descartar acarreo
11111011
-5
+ 11110111 + -9
1 111100 10 = -14
El bit de acarreo final no se tiene en
cuenta. La suma es negativa y, por
tanto, está en complemento a 2.
● 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”
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.
11110 0 0
+
Signo y magnitud
incorrecta
01111101
+125
00111010
+ 58
101101 11 = 183
Ejemplo de desbordamiento con
números de 8 bits.
● 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.
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”.
RESTA
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.
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.
MULTIPLICACIÓN
● El procedimiento del método se resume a continuación:
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.
4. Paso 4. Sumar cada producto parcial a la suma de los productos parciales
anteriores para obtener el producto final.
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.
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.
MULTIPLICACIÓN
MULTIPLICACIÓN
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.
DIVISIÓN
● El procedimiento para dividir dos números se resume a continuación:
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.
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.
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.
DIVISIÓN
DIVISIÓN
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.
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.
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B,
1C, 1D, 1E, 1F, 20, 21, 22, ….
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Hexadecimal
Binario
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
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.
0011 1111 0001 0110 10012
1100 1010 0101 01112
C
A
5
7
= CA5716
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
0
A
4
1 0000 0101 01002
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.
1
C
0001 11002 = 24 + 23 + 22 = 16 + 8 + 4 = 2810
● 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.
B2F816 = (Bx4096) + (2x256) + (Fx16) + (8x1)
= (11x4096) + (2x256) + (15x16) + (8x1)
=
45056
+
512
+
240
+
8
= 4581610
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/16
2/16
= 40,625
= 2,5
= 0,125
0,625 x 16 = 10
0,5 x 16
= 8
0,125 x 16 = 2
=A
=8
=2
LSB
Resultado final = 2 8 A
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.
SUMA HEXADECIMAL
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.
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.
Expresar 1 001 011 000 001 1102 en
octal:
Agrupar los números binarios de a 3bits comenzando desde la derecha.
De esta manera, 1130168
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Octal
Binario
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
NÚMEROS OCTALES
Decimal
● 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
.
.
Expresar 37028 en decimal.
Comenzar por escribir los pesos de las columnas:
512 64 8 1
3 7 0 28
3(512) + 7(64) +0(8) +2(1) = 198610
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Octal
Binario
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
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.
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Binario
BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0001 0000
0001 0001
0001 0010
0001 0011
0001 0100
0001 0101
CÓDIGO DECIMAL BINARIO (BCD)
● Aquí se muestra un experimento de
laboratorio en el cual el código BCD se
convierte a decimal.
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
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.
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.
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.
SUMA EN BCD
● Ejemplo sin acarreos…
SUMA EN BCD
● Ejemplos con acarreos …
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.
Decimal
Binario
Cod. Gray
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
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
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
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.
CÓDIGO ASCII
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.
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.
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:
Bit de paridad par
0 0101
Código BCD
● Si se produce un error en el tercer bit de la izquierda (el 1 se transmite
como 0).
Bit de paridad par
0 0001
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.
MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES
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.
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
p
siguiente expresión:
2  d  p 1
● 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:
P1 , P2 , D1 , P3 , D2 , D3 , D4
● 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:
EL CÓDIGO DE HAMMING DE CORRECCIÓN DE ERRORES
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.
COMO DETECTAR Y CORREGIR UN ERROR CON HAMMING
COMO DETECTAR Y CORREGIR UN ERROR CON HAMMING
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.
PALABRAS CLAVES DE LA UNIDAD
Alfanumérico Consistente en números, letras u otros
caracteres.
ASCII Código estándar americano para el
intercambio de información; es el código
alfanumérico más ampliamente utilizado.
Paridad 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.
Comprobación de la Un tipo de código de detección de errores.
redundancia cíclica (CRC)
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.
BIBLIOGRAFÍA
Libro base: “Fundamentos de Sistemas Digitales”. Autor: Tomas L. Floyd.
Libro complemento: “Principios de Diseño Digital”. Autor: Daniel D. Gaski.
Descargar