Los códigos de paridad se usan en Telecomunicaciones para detectar, y en algunos casos corregir, errores en la transmisión. Para ellos se añade en origen un bit extra llamado bit de paridad a los n bits que forman el carácter original.
Este bit de paridad se determina de forma que el número total de bits 1 a transmitir sea par (código de paridad par) o impar (código de paridad impar).
Código de paridad par
El bit de paridad será un 0 si el número total de 1 a transmitir es par, y un 1 si el número total de 1 es impar.
Código de paridad impar
El bit de paridad será un 1 si el número total de 1 a transmitir es par y un 0 si el número total de 1 es impar.
Normalmente el bit de paridad se añade a la izquierda del carácter original.
Ejemplos: Tenemos el carácter original 0111001. Vemos que la trama a transmitir tiene un número par de unos (4). Al añadir el bit de paridad obtendremos el siguiente carácter, que es el que se transmitirá a destino:
* Si usamos paridad par, ya hay un número par de unos, por tanto se añade un 0, y transmitiremos 00111001
* Si usamos paridad impar, como hay un número par de unos, hemos de añadir otro 1 para conseguir un número impar, y transmitiremos 10111001
Si se envía un dato y durante la transmisión se produce un único error, el destinatario puede detectarlo al comprobar la paridad en destino. Usando los ejemplos anteriores, y alterando un solo bit de la trama transmitida, nos quedaría.
* Paridad par: se recibe 00110001 en vez de 00111001. Al comprobar el número de unos nos salen 3 (impar), luego se ha producido un error.
* Paridad impar, se recibe 10110001 en vez de 10111001. Al comprobar el número de unos nos salen 4 (par), luego se ha producido un error.
Este método, aunque resulta satisfactorio en general, sólo es útil si los errores no cambian un número par de bits a la vez, ya que un número par de errores no afecta a la paridad final de los datos.
Por tanto, el método de paridad puede detectar un número impar de errores de transmisión. Siguiendo los ejemplos anteriores, y alterando dos bits en la transmisión, tenemos:
* Paridad par: se recibe 00110101 en vez de 00111001. Al comprobar el número de unos nos salen 4 (par), y no detecta los errores.
* Paridad impar, se recibe 10110101 en vez de 10111001. Al comprobar el número de unos nos salen 5 (impar), y no detecta los errores.
Ademas tenemos la paridad de bloque:
El proceso para calcular la paridad de bloque es el siguiente:
* Los caracteres a transmitir se agrupan en bloques de n filas y m columnas
* Se calcula el bit de paridad de cada fila y se añade al principio (o al final, según convenio) de la fila
* Se calcula el bit de paridad de cada columna y se añade al principio (o al final, según convenio) de la columna
El bloque final a transmitir tendrá por tanto una fila y una columna más que el original.
* La nueva columna estará formada por los bits de paridad horizontal de todas las filas
* La nueva fila estará formada por los bits de paridad vertical de todas las columnas.
* Adicionalmente se emplea un bit de paridad cruzada que se calcula a partir de los bits de paridad de filas y columnas.
Los chequeos de paridad horizontal y vertical se usan para detectar y corregir los posibles errores que se puedan producir durante la transmisión de datos.
A continuación se muestra un ejemplo en el que se chequea la paridad de un bloque de 48 bits, distribuido en 6 filas de 8 bits cada una. Se usa paridad par.
Paridad de Bloque
Paridad Horizontal | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 | Bit8 |
| 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | Paridad Vertical |
Fuente