Fundamentos de Sistemas Digitales - 23
Fundamentos de Sistemas Digitales - 23
www.elsolucionario.net
www.elsolucionario.net
error. ■ Asignar los apropiados bits de paridad para corregir un único error.
www.elsolucionario.net
CÓDIGOS DIGITALES ■ 105
Detección de un error. Un bit de paridad facilita la detección de un único error de bit (o de cualquier núme-
ro impar de errores, lo cual es muy improbable), pero no puede detectar dos errores dentro de un grupo. Por
ejemplo, supongamos que deseamos transmitir el código BCD 0101 (el método de paridad puede usarse con
cualquier número de bits, ahora usamos cuatro con propósitos de ilustración). El código total transmitido
incluyendo el bit de paridad par es:
Bit de paridad par
0 0101
N
Código BCD
Supongamos ahora que se produce un error en el tercer bit de la izquierda (el 1 se transmite como 0).
Bit de paridad par
00001
www.elsolucionario.net
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.
Un bit de paridad impar también facilita de forma similar la detección de un único error en un grupo de
bits dado.
EJEMPLO 2.39
Asignar el bit de paridad par apropiado a cada uno de los siguientes grupos de códigos:
(a) 1010 (b) 111000 (c) 101101
(d) 1000111001001 (e) 101101011111
Solución El bit de paridad puede ser 1 o 0 de modo que el número total de 1s sea par. El
bit de paridad será el bit más a la izquierda (tramado).
(a) 01010 (b) 1111000 (c) 0101101
(d) 0100011100101 (e) 1101101011111
Problema relacionado añadir un bit de paridad par al código ASCII de 7 bits correspondiente a la letra
K.
EJEMPLO 2.40
Un sistema de paridad impar recibe los siguientes grupos de códigos: 10110, 11010, 110011,
110101110100 y 1100010101010. Determinar qué grupos, si hay alguno, tienen error.
Solución Puesto que se requiere paridad impar, cualquier grupo con un número par de
1s es incorrecto. Los siguientes grupos contienen error:
110011 y 1100010101010.
Problema relacionado En un sistema de paridad impar se recibe el siguiente carácter ASCII:
00110111. ¿Es correcto?
CAP02_FLOYD_IMP.qxd 17/05/2006 9:28 PÆgina 106
www.elsolucionario.net
www.elsolucionario.net
Por ejemplo, si tenemos cuatro bits de datos, entonces p se calcula por el método de prueba y error usan-
do la Ecuación 2.1. Sea p = 2. Entonces,
2p = 22 = 4
y
d+p+1=4+2+1=7
Puesto que 2p tiene que ser igual o mayor que d + p + 1, la relación de la Ecuación 2.1 no se satisface.
Probamos de nuevo, sea p = 3. Luego,
2p = 23 = 8
y
d+p+1=4+3+1=8
Este valor de p satisface la relación de la Ecuación 2.1, por lo que se necesitan tres bits de paridad para
poder corregir un único error en cuatro bits de datos. Debemos destacar que se proporciona la detección y
corrección de errores para todos los bits, tanto de paridad como de datos, del grupo de códigos; es decir, los
bits de paridad también se comprueban a sí mismos.
Colocación de los bits de paridad en el código. Ahora que ya sabemos cuál es el número necesario de bits de pari-
dad en nuestro ejemplo, debemos colocar correctamente los bits dentro del código. Debe darse cuenta de que,
en este ejemplo, el código está formado por cuatro bits de datos y tres bits de paridad. El bit más a la izquier-
da es el bit 1, el siguiente bit es el bit 2, y así sucesivamente, como se muestra a continuación:
bit 1, bit 2, bit 3, bit 4, bit 5, bit 6, bit 7
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, . . . ), del modo siguiente:
P1, P2, D1, P3, D2, D3, D4
El símbolo Pn designa un determinado bit de paridad y Dn designa cada uno de los bits de datos.
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. Puesto que cada bit de paridad proporciona una comprobación sobre
los restantes bits del código total, tenemos que conocer el valor de dichos otros bits par asignar el valor del
bit de paridad. Para hallar los valores de los bits, primero expresamos en binario el número correspondiente a
cada posición de bit; es decir, escribimos el número binario correspondiente a cada número decimal de posi-
CAP02_FLOYD_IMP.qxd 17/05/2006 9:28 PÆgina 107
www.elsolucionario.net
CÓDIGOS DIGITALES ■ 107
ción, como se muestra en la Tabla 2.11. A continuación, como se ilustra en la primera fila de la Tabla 2.11,
indicamos las posiciones de los bits de paridad y de datos. Observe que el número binario de posición del bit
de paridad P1 tiene un 1 como su dígito más a la derecha. Este bit de paridad comprueba las posiciones de
todos los bits, incluyéndose a sí mismo, que tienen 1s en la misma posición en el correspondiente número de
posición en binario. Por tanto, el bit de paridad P1 comprueba las posiciones de bits 1, 3, 5 y 7.
Designación de bit P1 P2 D1 P3 D2 D3 D4
Posición de bit 1 2 3 4 5 6 7
Número de posición en binario 001 010 011 100 101 110 111
Bits de datos (Dn)
Bits de paridad (Pn)
www.elsolucionario.net
TABLA 2.11 Tabla de posiciones de bits para un código de corrección de errores de 7 bits.
El número de posición en binario para el bit de paridad P2 tiene un 1 en su posición intermedia. Este bit
comprueba entonces todas las posiciones de bit, incluyéndose a sí mismo, que tienen un 1 en esa misma posi-
ción. Por tanto, el bit de paridad P2 comprueba las posiciones de bit 2, 3, 6 y 7.
El número de posición en binario para el bit de paridad P3 tiene un 1 como su bit más a la izquierda. Este
bit comprueba entonces todas las posiciones de bit, incluyéndose a sí mismo, que tienen un 1 en esa misma
posición. Por tanto, el bit de paridad P3 comprueba las posiciones de bit 4, 5, 6 y 7.
En cada uno de los casos, se asigna un valor al bit de paridad de modo que la cantidad de 1s en el conjun-
to de bits que se desea comprobar sea impar o par, dependiendo de lo que se haya especificado. Los siguien-
tes ejemplos clarificarán este procedimiento.
EJEMPLO 2.41
Determinar el código Hamming para el número BCD 1001 (bits de datos), utilizando paridad par.
Solución Paso 1. Hallar el número de bits de paridad requeridos. Sea p = 3. Entonces,
2p = 23 = 8
d+p+1=4+3+1=8
Tres bits de paridad son suficientes.
Número total de bits de código = 4 + 3 = 7
Paso 2. Construir la tabla de posiciones de los bits, como se muestra en la
Tabla 2.12, e introducir los bits de datos. Los bits de paridad se deter-
minan en los pasos siguientes.
Designación de bit P1 P2 D1 P3 D2 D3 D4
Posición de bit 1 2 3 4 5 6 7
Número de posición en binario 001 010 011 100 101 110 111
Bits de datos 1 0 0 1
Bits de paridad 0 0 1
Tabla 2.12
CAP02_FLOYD_IMP.qxd 17/05/2006 9:28 PÆgina 108
www.elsolucionario.net
www.elsolucionario.net
EJEMPLO 2.42
Determinar el código Hamming para los bits de datos 10110 utilizando paridad impar.
Solución Paso 1. Determinar el número de bits de paridad necesario. En este caso, el
número de bits de datos, d, es cinco. Del ejemplo anterior sabemos
que p = 3 no es apropiado, por lo que probamos p = 4:
2p = 24 = 16
d + p + 1 = 5 + 4 + 1 = 10
Cuatro bits de paridad son suficientes.
Número total de bits de código = 5 + 4 = 9
Paso 2. Construir una tabla de posiciones de los bits, Tabla 2.13, y escribir los
bits de datos. Los bits de paridad se determinan en los pasos siguien-
tes. Observe que P4 se encuentra en la posición de bit 8.
Designación de bit P1 P2 D1 P3 D2 D3 D4 P4 D5
Posición de bit 1 2 3 4 5 6 7 8 9
Número de posición en binario 0001 0010 0011 0100 0101 0110 0111 1000 1001
Bits de datos 1 0 1 1 0
Bits de paridad 1 0 1 1
Tabla 2.13
www.elsolucionario.net
CÓDIGOS DIGITALES ■ 109
www.elsolucionario.net
de la siguiente manera:
Paso 1. Comience con el grupo comprobado por P1.
Paso 2. Compruebe si el grupo tiene la paridad correcta. Un 0 representa que la comprobación de pari-
dad es correcta y un 1 que es incorrecta.
Paso3. 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 com-
probación de paridad genera el bit menos significativo (LSB). Si todas las comprobaciones son
correctas, no habrá error.
EJEMPLO 2.43
Suponga que se transmite la palabra código del Ejemplo 2.41 (0011001) y que se recibe 0010001. El
receptor no “sabe” lo que se ha transmitido y debe calcular las paridades apropiadas para determinar si
el código es correcto. Indique cualquier error que se haya producido en la transmisión si se utiliza pari-
dad par.
Solución En primer lugar, construimos una tabla de posiciones de bits, como la mostra-
da en la Tabla 2.14.
Designación de bit P1 P2 D1 P3 D2 D3 D4
Posición de bit 1 2 3 4 5 6 7
Número de posición en binario 001 010 011 100 101 110 111
Código recibido 0 0 1 0 0 0 1
Tabla 2.14
www.elsolucionario.net
www.elsolucionario.net
Problema relacionado Repita el proceso ilustrado en el ejemplo para el caso de que el código recibi-
do fuera 0111001.
EJEMPLO 2.44
Se recibe el código 101101010. Corregir los errores. Se emplean cuatro bits de paridad y el tipo de pari-
dad impar.
Solución En primer lugar, construimos una tabla de posiciones de bits, como la mostra-
da en la Tabla 2.15.
Designación de bit P1 P2 D1 P3 D2 D3 D4 P4 D5
Posición de bit 1 2 3 4 5 6 7 8 9
Número de posición en binario 0001 0010 0011 0100 0101 0110 0111 1000 1001
Código recibido 1 0 1 1 0 1 0 1 0
Tabla 2.15
www.elsolucionario.net
RESUMEN ■ 111
www.elsolucionario.net
2. ¿Qué códigos de paridad par son erróneos?
(a) 11000110 (b) 00101000 (c) 10101010 (d) 11111011
3. Sumar un bit de paridad par al final de cada uno de los siguientes códigos.
(a) 1010100 (b) 0100000 (c) 1110111 (d) 1000110
4. ¿Cuántos bits de paridad son necesarios para los bits de datos 11010 utilizando
el código Hamming?
5. Crear el código Hamming para los bits de datos 0011 utilizando paridad impar.
RESUMEN
■ Un número binario es un grupo de bits con peso en el que el peso de cada número entero es una
potencia positiva de dos, y el peso de cada dígito fraccionario es una potencia negativa de dos. Los
pesos de los números enteros aumentan de derecha a izquierda, del bit menos significativo al más
significativo.
■ Un número binario puede convertirse a número decimal sumando los valores decimales de los
pesos de todos los 1s del número binario.
■ Un número entero decimal puede convertirse a binario utilizando la suma de pesos o el método de
la división sucesiva por 2.
■ Una fracción decimal puede convertirse a binario utilizando la suma de pesos o el método de mul-
tiplicación sucesiva por 2.
■ Las reglas básicas de la suma binaria son las siguientes:
0+0=0
0+1=1
1+0=1
1 + 1 = 10
■ Las reglas básicas de la resta binaria son las siguientes:
0−0=0
1−1=0
1−0=1
10 − 1 = 1
■ El complemento a 1 de un número binario se obtiene cambiando los 1s por 0s, y los 0s por 1s.
■ El complemento a 2 de un número binario puede obtenerse sumando 1 al complemento a 1.
■ La resta binaria puede realizarse mediante sumas, utilizando los métodos de complemento a 1 y
complemento a 2.
■ Un número binario positivo se representa mediante un bit de signo 0.