Fecha: 1 er semestre de 2011 EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeracin, Operaciones y Cdigos INTRODUCCIN El sistema de numeracin binario y los cdigos digitales son fundamentales en las computadoras y, en general, en la electrnica digital.
Esta unidad est enfocada principalmente al sistema de numeracin binario y sus relaciones con otros sistemas de numeracin tales como el decimal, hexadecimal y octal.
Se cubren las operaciones aritmticas con nmeros binarios con el fin de proporcionar una base para entender cmo trabajan las computadoras y muchos otros tipos de sistemas digitales.
Tambin se abordan cdigos digitales como el cdigo decimal binario (BCD, Binary Code Decimal), el cdigo Gray y el ASCII.
Se presenta el mtodo de paridad para la deteccin de errores en los cdigos y se describe un mtodo para corregir dichos errores. NMEROS DECIMALES Todos estamos familiarizados con el sistema de numeracin decimal porque los usamos cada da.
Aunque los nmeros decimales son triviales, a menudo, su estructura de pesos no se comprende. En lo sucesivo, revisaremos la estructura de los nmeros decimales.
Esto ayudar a entender ms fcilmente la estructura del sistema de numeracin binario, que es tan importante en las computadoras y la electrnica digital. NMEROS DECIMALES A la posicin de cada nmero en un sistema de numeracin posicional se le asigna un peso basado en la base o radix del sistema. El radix de los nmeros decimales es 10, porque slo se utilizan 10 smbolos (de 0 a 9) para representar cualquier nmero. 10 5 10 4 10 3 10 2 10 1 10 0 . 10 2 10 1 10 0 . 10 -1 10 -2 10 -3 10 -4
Los pesos de las columnas de nmeros decimales son potencias de 10 que se incrementan de derecha a izquierda empezando por 10 0 =1. Para nmeros decimales fraccionales, los pesos de las columnas son potencias negativas de 10 que disminuyen de izquierda a derecha. NMEROS DECIMALES Los nmeros decimales se pueden expresar como la suma de productos de cada dgito por los valores de las columnas (potencias de 10) para ese dgito. As, el nmero 9240 se puede expresar como: (9 x 10 3 ) + (2 x 10 2 ) + (4 x 10 1 ) + (0 x 10 0 )
9 x 1000 + 2 x 100 + 4 x 10 + 0 x 1 Expresar el nmero 480.52 como la suma de valores de cada dgito. 480.52 = (4 x 10 2 ) + (8 x 10 1 ) + (0 x 10 0 ) + (5 x 10 -1 ) +(2 x 10 -2 ) NMEROS BINARIOS El sistema de numeracin binario es simplemente otra forma de representar magnitudes.
El sistema binario es menos complicado que el decimal ya que solo tiene dos dgitos. Al principio puede parecer complicado por no ser familiar.
El sistema decimal con sus diez dgitos es un sistema en base diez, el sistema binario con sus dos dgitos es un sistema en base dos.
Los dos dgitos binarios (bits) son 1 y 0. La posicin de un 1 o un 0 indican su peso o valor en un nmero de la misma manera que en el sistema decimal. NMEROS BINARIOS Para los sistemas digitales, se utiliza el sistema de numeracin binario. El sistema binario tiene un radix de 2 y utiliza los dgitos 0 y 1 para representar cantidades. Los pesos de columna para nmeros binarios son potencias de 2 que aumentan de derecha a izquierda empezando por 2 0 =1. 2 5 2 4 2 3 2 2 2 1 2 0 . Para nmeros binarios fraccionales, los pesos de las columnas son potencias negativas de 2 que disminuyen de izquierda a derecha. 2 2 2 1 2 0 . 2 -1 2 -2 2 -3 2 -4
NMEROS BINARIOS A la derecha se muestra una secuencia de conteo binario para los nmeros 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 Nmero Decimal Nmero Binario Los Contadores Digitales tienen comnmente el mismo patrn de dgitos. Counter Decoder 1 0 1 0 1 0 1 0 0 1 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 0 1 CONVERSIN BINARIO A DECIMAL El equivalente decimal de un nmero 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 nmero binario 100101.01 a decimal. Comience por escribir la columna de pesos; luego sumar los pesos que corresponden a cada 1 en el nmero. 2 5 2 4 2 3 2 2 2 1 2 0 . 2 -1 2 -2 32 16 8 4 2 1 . 1 0 0 1 0 1. 0 1 32 +4 +1 + = 37 CONVERSIN DECIMAL A BINARIO 1. Mtodo de la suma de pesos: Se puede convertir un nmero entero decimal en uno binario revirtiendo el procedimiento. Para ello:
Escribir el peso decimal de cada columna y poner 1s en las columnas que suman el nmero decimal. Convertir el nmero decimal 49 a binario. Poner 1s en las posiciones de pesos adecuadas de tal manera que la suma corresponda al nmero decimal. 2 6 2 5 2 4 2 3 2 2 2 1 2 0 .
64 32 16 8 4 2 1. 0 1 1 0 0 0 1. En la diapositiva anterior vimos cmo convertir un nmero binario en el nmero decimal equivalente. Ahora vamos a aprender dos mtodos para convertir un nmero decimal en un nmero binario. CONVERSIN DECIMAL A BINARIO 2. Mtodo de la divisin 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 condicin de parada se produce cuando la parte entera del cociente es 0. 1 0 0 1 1 0 Convertir el nmero decimal 49 a binario dividiendo repetidamente por 2. Se puede hacer por divisin en reversa y la respuesta se leer de izquierda a derecha. Poner cuocientes a la izquierda y restos encima. 49 2 Nmero decimal base 24 resto Cociente 12 6 3 1 0 Contine hasta el ltimo cuociente es 0 Respuesta: CONVERSIN DE FRACCIONES DECIMALES A BINARIO Se puede convertir un nmero decimal fraccionario a binario multiplicando repetidamente los resultados fraccionales de sucesivas multiplicaciones por 2. Los acarreos forman el nmero 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 dgitos significativos) MSB ARITMTICA BINARIA La aritmtica 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 bsicos de la suma, resta, multiplicacin y divisin binarias. En lo sucesivo se introducen estos temas. SUMA BINARIA Las reglas bsicas 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 SUMA BINARIA Sumar los nmeros binarios 00111 y 10101 y mostrar la suma decimal equivalente. 00111 7 10101 21 0 1 0 1 1 1 1 0 1 28 = RESTA BINARIA Las reglas bsicas para la resta binaria son: 0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 10 - 1 = 1 con un adeudo de 1 Restar el nmero binario 00111 a 10101 y mostrar la resta decimal equivalente. 00111 7 10101 21 0 / 1 1 1 1 0 14 / 1 / 1 = MULTIPLICACIN BINARIA Las reglas bsicas para la multiplicacin binaria son: 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 La multiplicacin con nmeros binarios se realiza de la misma forma que con nmeros decimales. Se realizan los productos parciales, desplazando cada producto parcial sucesivo una posicin a la izquierda, y sumando luego todos los productos parciales. Multiplicar el nmero binario 110100010101 con 1101. MULTIPLICACIN BINARIA Multiplicar el nmero binario 110100010101 con 1101. 334913 = 43537 DIVISIN BINARIA Estudiar del libro base COMPLEMENTO A 1 Y 2 DE NMEROS BINARIOS El complemento a 1 y el complemento a 2 de un nmero binario son importantes porque permiten la representacin de nmeros negativos.
La aritmtica en complemento a 2 se usa comnmente en las computadoras para manipular nmeros negativos. COMPLEMENTO A 1 El complemento a 1 de un nmero binario es solo la inversin de los dgitos. Para formar el complemento a 1, cambiar todos los 0s a 1s y todos los 1s a 0s. 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: COMPLEMENTO A 2 El complemento a 2 de un nmero 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 COMPLEMENTO A 2 Un mtodo alternativo para obtener el complemento a 2 de un nmero binario es el siguiente:
1. Se empieza por la derecha con el LSB y se escriben los bits como estn 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. NMEROS CON SIGNO Los sistemas digitales, tales como las computadoras, deben ser capaces de manejar nmeros positivos y negativos.
Un nmero binario con signo queda determinado por su magnitud y su signo. El signo indica si un nmero es positivo o negativo, y la magnitud el valor del nmero.
Existen tres formatos binarios para representar los nmeros enteros con signo: signo-magnitud, complemento a 1 y complemento a 2.
Los nmeros no enteros y muy grandes o muy pequeos pueden expresarse en formato de coma flotante. BIT DE SIGNO El bit ms a la izquierda de un nmero binario con signo es el bit de signo, que indica si el nmero es positivo o negativo. Un bit se signo 0 indica que es un nmero positivo y un bit de signo igual a 1 indica que es un nmero negativo. FORMATO SIGNO Y MAGNITUD Cuando un nmero binario con signo se representa en este formato, el bit ms a la izquierda es el bit de signo y los restantes bits son de magnitud. Por ejemplo, el nmero 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 nmeros positivos en formato de complemento a 1 se representan igual que los nmeros positivos del formato signo-magnitud. Sin embargo, los nmeros negativos son el complemento a 1 del correspondiente nmero positivo. Por ejemplo, con ocho bits, el nmero decimal -25 se expresa como el complemento a 1 de +25 (00011001) como 11100110. En formato complemento a 1, un nmero negativo es el complemento a 1 del correspondiente nmero positivo FORMATO DEL COMPLEMENTO A 2 Los nmeros positivos en formato de complemento a 2 se representan igual que los nmeros positivos del formato signo-magnitud y complemento a 1. Sin embargo, los nmeros negativos son el complemento a 2 del correspondiente nmero positivo. Por ejemplo, con ocho bits, el nmero decimal -25 se expresa como el complemento a 2 de +25 (00011001) como 11100111. En formato complemento a 2, un nmero negativo es el complemento a 2 del correspondiente nmero positivo VALOR DECIMAL DE LOS NMEROS CON SIGNO Signo y magnitud. Los valores decimales de los nmeros 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 nmero 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 VALOR DECIMAL DE LOS NMEROS CON SIGNO Complemento a 1. Los valores decimales de los nmeros 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 nmeros 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 nmeros binarios con signo expresados en complemento a 1: a) 00010111 b) 11101000 VALOR DECIMAL DE LOS NMEROS CON SIGNO Complemento a 2. Los valores decimales de los nmeros 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 nmero negativo viene dado por su valor negativo. Determinar los valores decimales de los nmeros binarios con signo expresados en complemento a 2: a) 01010110 b) 10101010 RANGO DE REPRESENTACIN DE LOS NMEROS CON SIGNO En la mayora de los ejemplos se han utilizado nmeros de 8 bits, puesto que la agrupacin de 8 bits es un estndar en la mayora de los sistemas digitales y recibe el nombre de byte.
Con 8 bits se pueden representar 256 nmeros diferentes.
Combinando 2 bytes (16 bits) se pueden representar 65.536 nmeros diferentes.
Combinando 4 bytes (32 bits) se pueden representar 4.295x10 9 nmeros diferentes.
Y as sucesivamente . RANGO DE REPRESENTACIN DE LOS NMEROS CON SIGNO La frmula para calcular el nmero de combinaciones diferentes es: Nmero total de combinaciones = 2 n
-(2 n-1 ) a +(2 n-1 -1) Para los nmeros con signo en complemento a 2, el rango de valores para nmeros 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 nmeros en complemento a 2 en el rango de (2 3 ) = -8 hasta +(2 3 - 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 NMEROS EN COMA FLOTANTE Para representar nmeros enteros muy grandes, son necesarios muchos bits. Tambin se producen problemas cuando queremos representar nmeros con parte fraccionaria, tal como 23,5618.
El nmero en coma flotante (tambin conocido como nmero real) tiene dos partes ms un signo. La mantisa que representa la magnitud del nmero. El exponente que representa el nmero de lugares que se va a desplazar el punto decimal (o binario).
Por ejemplo el nmero 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 10 9
NMEROS EN COMA FLOTANTE Para los nmeros en coma flotante binarios, el formato definido por el estndar 754/1985 ANSI/IEEE puede tomar tres formas: simple precisin (compuesto por 32 bits), doble precisin (compuesto por 64 bits) y precisin ampliada (80 bits).
Restringiremos la explicacin al formato en coma flotante de precisin simple el cual se ilustra a continuacin. S E (8 bits) F (23 bits) Bit de signo Mantisa (parte fraccionaria, F) Exponente desplazado (E) (+127) NMEROS EN COMA FLOTANTE Un ejemplo para ilustrar como un nmero binario se expresa en formato de coma flotante: 1011010010001. NMEROS EN COMA FLOTANTE Expresar la velocidad de la luz, c, en notacin de punto flotante de precisin simple binario. (c = 0.2998 x 10 9 ) En notacin cientfica, c = 1.0001 1101 1110 1001 0101 1100 0000 x 2 28 . 0 10011011 0001 1101 1110 1001 0101 110 En binario, c = 0001 0001 1101 1110 1001 0101 1100 0000 2 . S = 0 porque el nmero es positivo. E = 28 + 127 = 155 10 = 1001 1011 2 . F son los siguientes 23 bits descartando el primer 1. En notacin de punto flotante, c = NMEROS EN COMA FLOTANTE Para evaluar un nmero binario que ya est en formato de coma flotante se utiliza la siguiente frmula. Nmero = (-1) S (1 + F)(2 E-127 ) Por ejemplo, consideremos el siguiente nmero 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 frmula, obtenemos Nmero = (-1) 1 (1.10001110001)(2 145-127 ) = (-1)(1.10001110001)(2 18 ) = -1100011100010000000 Este nmero es equivalente al -407.688 en decimal. OPERACIONES ARITMTICAS DE NMEROS CON SIGNO Hemos aprendido como se representan, en tres formatos diferentes, los nmeros con signo. Ahora, estudiaremos como se suman, restan, multiplican y dividen estos nmeros.
Dado que el complemento a 2 es el sistema de representacin de nmeros con signo ms ampliamente utilizado en las computadoras y microprocesadores, en lo sucesivo veremos la aritmtica de nmeros con signo en complemento a 2.
Los procedimientos que veremos pueden perfectamente extenderse a los dems sistemas. SUMA Los dos nmeros en una suma se denominan sumandos. El resultado es la suma. Cuando se suman dos nmeros binarios con signo pueden producirse cuatro casos:
1. Ambos nmeros son positivos.
2. El nmero positivo es mayor que el negativo en valor absoluto.
3. El nmero negativo es mayor que el positivo en valor absoluto.
4. Ambos nmeros son negativos. Ahora veremos caso por caso, utilizando nmeros de 8 bits como ejemplo. Se pondrn como referencia los nmeros decimales equivalentes. SUMA Caso 1: Ambos nmeros 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 nmero binario real (no complementado). Caso 2: El nmero positivo es mayor que el nmero 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 nmero binario real (no complementado). 1 Descartar acarreo 1 1 1 SUMA Caso 3: El nmero negativo es mayor que el nmero positivo en valor absoluto. La suma es negativa y, por tanto, est en complemento a 2. Caso 4: Ambos nmeros 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 nmeros 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 nmeros y descartar cualquier bit de acarreo final CONDICIN DE DESBORDAMIENTO (OVERFLOW) Cuando se suman dos nmeros y el nmero de bits requeridos para representar la suma excede el nmero de bits de los dos nmeros, se produce un desbordamiento, que se indica mediante un bit de signo incorrecto. NOTA: Un desbordamiento se produce slo cuando ambos nmeros son positivos o negativos. Ejemplo de desbordamiento con nmeros 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 nmeros tienen slo 7 bits de magnitud, se produce un acarreo en el bit de signo que da lugar a la indicacin 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.
Bsicamente, la operacin 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 nmero binario positivo o negativo se cambia tomando su complemento a 2.
Puesto que la sustraccin o resta es simplemente una suma con el signo del sustraendo cambiado, el proceso se define del siguiente modo: Para restar dos nmeros con signo, se calcula el complemento a 2 del sustraendo y se suman. Cualquier bit de acarreo final se descarta. RESTA MULTIPLICACIN Los nmeros en una multiplicacin se denominan multiplicando, multiplicador y producto. La siguiente multiplicacin decimal ilustra estos trminos.
Comnmente, la operacin de multiplicacin se realiza utilizando la suma. (Recordar que la resta igual se hace como una suma).
Existen dos mtodos para realizar la multiplicacin de nmeros con signo. Ellos son:
1. El mtodo de la suma directa.
2. El mtodo de los productos parciales. MULTIPLICACIN Mtodo 1. En el mtodo de la suma directa, se suma el multiplicando un nmero de veces igual al multiplicador. Mtodo no eficiente ya que si el multiplicador es muy grande, la suma ser muy larga.
Mtodo 2. El mtodo de los productos parciales es el ms comn ya que es la forma de multiplicar manualmente. El signo del producto de una multiplicacin 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. MULTIPLICACIN 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 nmero negativo en formato real (no complementado). Puesto que la mayora de las computadoras almacenan los nmeros negativos en complemento a 2, se requiere esta operacin para obtener el nmero 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 mtodo se resume a continuacin: 5. Paso 5. Si el bit de signo que se haba determinado en el paso 1 es negativo, calcular el complemento a 2 del producto. Si es positivo, dejarlo en formato real. Aadir el bit de signo al producto. MULTIPLICACIN Multiplicar los siguientes nmeros con signo:
2. Verificar que la multiplicacin es correcta convirtiendo los binarios a decimales y realizando la multiplicacin. MULTIPLICACIN MULTIPLICACIN DIVISIN Los nmeros en una divisin se denominan dividendo, divisor y cociente.
En los computadores, la operacin de divisin se lleva a cabo usando la resta. Puesto que la resta se puede realizar como una suma, la divisin tambin 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. DIVISIN Continuar restando el divisor del dividendo y los restos parciales hasta que el resultado sea cero o negativo. Contar el nmero 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 divisin 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 divisin se ha terminado. El procedimiento para dividir dos nmeros se resume a continuacin: DIVISIN Dividir los siguientes nmeros con signo:
1. 01100100 (dividendo) 00011001 (divisor).
2. Verificar que la divisin es correcta convirtiendo los binarios a decimales y realizando la divisin. DIVISIN DIVISIN NMEROS HEXADECIMALES El sistema de numeracin hexadecimal consta de diecisis dgitos y se usan fundamentalmente como una forma simplificada de representar o escribir los nmeros binarios, ya que es muy fcil la conversin entre binario y hexadecimal.
Los nmeros binarios largos son difciles de leer y escribir, ya que es fcil omitir o trasponer un bit. La representacin hexadecimal ayuda a solventar esta limitante al reducir la cantidad de smbolos en la notacin.
El sistema hexadecimal se usa frecuentemente en computadoras y aplicaciones de microprocesadores. NMEROS HEXADECIMALES La representacin Hexadecimal usa diecisis caracteres para representar nmeros: los nmeros del 0 al 9 y los caracteres alfabticos de la A a la F.
Para contar en hexadecimal por sobre la F, sencillamente se inicia otra columna y se contina 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, . CONVERSIN BINARIO - HEXADECIMAL La conversin de un nmero binario en hexadecimal es un procedimiento muy sencillo. Simplemente, se parte el nmero binario en grupos de 4 bits, comenzando por el bit ms a la derecha, y se reemplaza cada grupo de 4 bits por su smbolo hexadecimal equivalente, como ilustra abajo. 1100 1010 0101 0111 2
C A 5 7 = CA57 16
0011 1111 0001 0110 1001 2
3 F 1 6 9 = 3F169 16
CONVERSIN HEXADECIMAL - BINARIO Para convertir un nmero hexadecimal en un nmero binario se realiza el proceso inverso, reemplazando cada smbolo hexadecimal por el grupo de cuatro bits adecuado. 1 0000 0101 0100 2
1 0 A 4 CONVERSIN HEXADECIMAL - DECIMAL Un mtodo para encontrar el equivalente decimal de un nmero hexadecimal es, primero, convertir el hexadecimal a binario y luego el binario a decimal. Abajo se ilustra un ejemplo. Otro mtodo para convertir un nmero hexadecimal a su equivalente decimal es multiplicar el valor decimal de cada dgito hexadecimal por su peso, y finalmente, realizar la suma de estos productos. 0001 1100 2 = 2 4 + 2 3 + 2 2 = 16 + 8 + 4 = 28 10
CONVERSIN DECIMAL - HEXADECIMAL Al igual que la conversin de decimal a binario, el mtodo de la divisin sucesiva por 2 se puede extender a cualquier base. En este caso, la divisin sucesiva por 16 de un nmero decimal generar el nmero hexadecimal equivalente formado por los restos de las divisiones. A continuacin 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 SUMA HEXADECIMAL Cuando se suman dos nmeros hexadecimales se usan las siguientes reglas:
1. En cualquier columna dada de una suma, pensar en los dos dgitos hexadecimales en trminos de su valor decimal. Por ejemplo, 5 16 = 5 10 , C 16 = 12 10 .
2. Si la suma de los dos dgitos es 15 10 o menor, reducir al dgito hexadecimal correspondiente.
3. Si la suma de los dgitos es mayor que 15 10 , hay que reducir la suma que excede de 16 10 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 nmeros binarios. Este mtodo tambin aplica a la resta en hexadecimal. NMEROS OCTALES Octal usa ocho caracteres, los nmeros del 0 al 7 para representar los nmeros. No existe el caracter 8 o 9 en octal.
Los nmeros binarios se pueden convertir fcilmente a octal al agrupar bits de a 3 y escribiendo el carcter 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 110 2 en octal: Agrupar los nmeros binarios de a 3- bits comenzando desde la derecha. De esta manera, 113016 8 NMEROS OCTALES Octal tambin es un sistema de numeracin ponderado. Los pesos de las columnas son potencias de 8, las cuales se incrementan de derecha a izquierda. . Pesos de columna 8 3 8 2 8 1 8 0
Expresar 3702 8 en decimal. Comenzar por escribir los pesos de las columnas: 512 64 8 1 3(512) + 7(64) +0(8) +2(1) = CDIGO DECIMAL BINARIO (BCD) El cdigo decimal binario (BCD) es un cdigo ponderado que se utiliza comnmente en sistemas digitales cuando se necesita mostrar nmeros decimales tal como un display de reloj.
La tabla ilustra la diferencia entre binario directo y BCD. BCD representa cada dgito decimal con un cdigo de 4-bit. Observe que los cdigos desde el 1010 al 1111 no se utilizan en BCD, es decir, son cdigos no vlidos. 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 CDIGO DECIMAL BINARIO (BCD) Aqu se muestra un experimento de laboratorio en el cual el cdigo BCD se convierte a decimal. CDIGO DECIMAL BINARIO (BCD) Se puede pensar en BCD en trminos de los pesos de las columnas en grupos de a cuatro bits. Para un nmero BCD de 8-bit, los pesos de las columnas son: 80 40 20 10 8 4 2 1. Cules son los pesos de las columnas para el nmero BCD 1000 0011 0101 1001? 8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2 1 Observe que se podra agregar los pesos de las columnas donde hay un 1 para obtener el nmero decimal equivalente. Para este caso: 8000 + 200 +100 + 40 + 10 + 8 +1 = 8359 10 CONVERSIN DECIMAL a BCD Para expresar cualquier nmero decimal en BCD, simplemente reemplazar cada dgito decimal por el apropiado cdigo de 4 bits. CONVERSIN BCD a DECIMAL Para expresar cualquier nmero BCD en decimal, simplemente se comienza por el bit ms a la derecha y se divide el cdigo en grupos de a cuatro. Luego, se escribe el dgito decimal representado por cada grupo. SUMA EN BCD BCD es un cdigo numrico y puede utilizarse en operaciones aritmticas.
Veremos slo 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 nmeros 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 nmero BCD vlido. 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 vlido. En este caso, se suma 6 (0110) al grupo de 4 bits para saltar as los seis estados no vlidos y pasar al cdigo 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 CDIGO GRAY El cdigo Gray es un cdigo sin ponderacin que cambia slo un bit entre una palabra de cdigo y la siguiente en una secuencia.
El cdigo Gray se utiliza para evitar problemas en sistemas donde un error puede ocurrir si ms de un bit cambia en una transicin 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 CDIGO GRAY Un mecanismo codificador de eje es una aplicacin tpica. Tres detectores/emisores de infrarrojo IR se utilizan para codificar la posicin del mecanismo. El codificador de la izquierda usa codificacin binaria y puede tener 3-bits que cambian a la vez, lo cual genera una potencial fuente error. El codificador de la derecha usa cdigo gray y solamente cambia 1-bit en cada transicin, eliminando los errores del sistema. Secuencia binaria Secuencia cd. Gray CDIGO ASCII ASCII es un cdigo de caracteres alfanumricos y caracteres de control.
En su forma original, ASCII codifica 128 caracteres y smbolos usando 7 bits. Los primeros 32 caracteres son caracteres de control, que fueron originalmente requeridos para sistemas teletipo. Hoy en da, estos caracteres estn generalmente asignados a otras funciones ms modernas.
En 1981, IBM introdujo el cdigo ASCII extendido, el cual es un cdigo 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 Ingls. CDIGO ASCII DETECCIN DE ERRORES Y CDIGOS DE CORRECCIN Se abordarn dos mtodos para sumar bits a cdigos para detectar o para detectar y corregir un error en un nico bit.
1. El primero de ellos es el mtodo de paridad para la deteccin de errores.
2. El segundo es el mtodo de Hamming para deteccin y correccin de un nico error. MTODO DE PARIDAD PARA LA DETECCIN DE ERRORES El mtodo de paridad es un mtodo de deteccin de error para sistemas de transmisin simples que involucran errores de un bit (o un nmero impar de bits).
Un bit de paridad es un bit extra que se adjunta o aade a un grupo de bits para forzar el nmero de 1s 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 comprobacin que se realice en cada grupo de bits recibidos tiene que asegurar que el nmero total de 1s en es grupo es par. Si hay un nmero impar de 1s, quiere decir que se ha producido un error. MTODO DE PARIDAD PARA LA DETECCIN DE ERRORES Deteccin del un error. Un bit de paridad facilita la deteccin de un nico error de bit (o de cualquier nmero impar de errores, lo cual es muy improbable), pero no puede detectar dos errores dentro de un grupo.
Ejemplo. Si queremos transmitir el cdigo BCD 0101. El cdigo 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 Cdigo BCD Bit de paridad par 0 0001 Bit de paridad par Bit errneo Cuando se recibe este cdigo, la circuitera de comprobacin de paridad determina que slo hay un 1 (impar), cuando debera haber un nmero par de 1s. Puesto que en el cdigo recibido no aparece un nmero par de 1s, esto indica que se ha producido un error. MTODO DE PARIDAD PARA LA DETECCIN DE ERRORES EL CDIGO DE HAMMING DE CORRECCIN DE ERRORES El cdigo Hamming sirve no solo para detectar un error si no tambin proporciona un mtodo de correccin de un nico bit errneo.
Un cdigo Hamming para deteccin de errores en un grupo de datos se construye llevando a cabo tres procesos en secuencia:
1. Nmero de bits de paridad. 2. Colocacin de bits de paridad en el cdigo. 3. Asignacin de los valores de los bits de paridad. EL CDIGO DE HAMMING DE CORRECCIN DE ERRORES Nmero de bits de paridad. Si el nmero de bits de datos se designa por d, entonces el nmero de bits de paridad, p, se determina mediante la siguiente expresin: 1 2 p d p Colocacin de los bits de paridad en el cdigo. Los bits de paridad se sitan en las posiciones que se han numerado hacindolas corresponder con las potencias de dos en sentido ascendente(1,2,4,8,) como sigue: 4 3 2 3 1 2 1 , , , , , , D D D P D P P Asignacin 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 CDIGO DE HAMMING DE CORRECCIN DE ERRORES COMO DETECTAR Y CORREGIR UN ERROR CON HAMMING Paso 1. Comenzar con el grupo comprobado por P 1.
Paso 2. Comprobar si el grupo tiene paridad correcta. Un 0 representa que la comprobacin de paridad es correcta y un 1 que es incorrecta.
Paso 3. Repita el paso 2 para cada grupo de paridad.
Paso 4. El nmero binario formado por los resultados de todas las comprobaciones de paridad indica la posicin del bit del cdigo que es errneo. Es el cdigo de posicin de error. La primera comprobacin 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
Nmero en punto flotante
Hexadecimal
Octal
BCD Un grupo de ocho bits Una representacin de nmeros basada en notacin cientfica en la que el nmero se compone de un exponente y una mantisa. Un sistema numrico en base 16. Un sistema numrico en base 8. Decimal codificado en binario; un cdigo digital en el que cada uno de los dgitos decimales, del 0 al 9, se representa por un grupo de cuatro bits. PALABRAS CLAVES DE LA UNIDAD
Alfanumrico
ASCII
Paridad
Comprobacin de la redundancia cclica (CRC) Consistente en nmeros, letras u otros caracteres. Cdigo estndar americano para el intercambio de informacin; es el cdigo alfanumrico ms ampliamente utilizado. En relacin a los cdigos binarios, la condicin de paridad par o impar est en el nmero de 1s en un grupo de cdigo. Un tipo de cdigo de deteccin de errores. CONCLUSIONES DE LA UNIDAD Vimos los distintos tipos de representacin numrica, especialmente los sistema de numeracin posicional caracterizado por los pesos de los dgitos segn la posicin que adoptan en el nmero.
Vimos como convertir nmeros representados en un sistema de numeracin a otro. Especialmente, vimos los sistemas decimal, binario, hexadecimal y octal.
Vimos la aritmtica asociada a cada uno de estos sistemas de representacin con nmeros en formato real y formato con signo.
Vimos la estructura de los cdigos binarios ms utilizados en sistemas digitales. Estos son: cdigo BCD (8421), GRAY y ASCII.
Vimos un mtodo para comprobar o detectar posibles errores de transmisin en nmeros binarios y la manera de corregirlos. BIBLIOGRAFA Libro base: Fundamentos de Sistemas Digitales. Autor: Tomas L. Floyd. Libro complemento: Principios de Diseo Digital. Autor: Daniel D. Gaski.