El documento describe varios códigos utilizados en sistemas digitales como BCD, código Gray, código Hamming y código ASCII. El BCD representa números decimales en binario para permitir operaciones aritméticas sin pérdida de precisión. El código Gray minimiza los cambios entre valores adyacentes. El código Hamming detecta y corrige errores. El código ASCII es un estándar para la codificación de caracteres.
1. 1. Código BCD: Es la presentación de números, letras o palabras por medio de un
grupo especial de símbolos, se dice que se encuentran codificados, y al grupo de
símbolos se le llama código. En sistemas de computación, Binary-Coded Decimal (BCD)
o Decimal codificado en binario es un estándar para representar números decimales
en el sistema binario, en donde cada dígito decimal es codificado con una secuencia de
4 bits. Con esta codificación especial de los dígitos decimales en el sistema binario, se
pueden realizar operaciones aritméticas como suma, resta, multiplicación y división de
números en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a
binario puro y de binario puro a decimal. La conversión de los números decimales a
BCD y viceversa es muy sencilla, pero los cálculos en BCD se llevan más tiempo y son
algo más complicados que con números binarios puros.
Fundamento: En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se
representa con su equivalente binario en cuatro bits (nibble o cuarteto) (esto es así
porque es el número de bits necesario para representar el nueve, el número más alto
que se puede representar en BCD).
Procedimiento de conversión a binario y de binario al código. De binario a BCD:
Lamentablemente, de binario a BCD no podemos simplemente separar conjuntos de
cuatro bits y esperar a que todo funcione. Para la conversión, se requiere el uso de un
algoritmo denominado desplazar a la izquierda y sumar tres. Y lo que hace es, bueno,
¡desplazar y sumar tres!
En resumen, el proceso es:
1. Desplazar el número binario hacia la izquierda un bit.
2. Si alguno de los dígitos tiene un valor igual o mayor a cinco, sumar tres.
3. Repetir los pasos 1 y 2 la cantidad de bits del número binario que se quiere
convertir.
En esta entrada se realiza el ejemplo del convertidor pensado para el metrónomo, la
cantidad de BPM a visualizar va de 1 a 512. Lo que implica 3 dígitos en BCD. Y las
direcciones de la ROM van de 0 a 511, cantidades que se representan en 9 bits. Por lo
tanto, el componente a ser desarrollado es un convertidor de 9 bits en binario a tres
dígitos en BCD. En la tabla 2 se muestra la estructura básica de cómo se alineará fn los
datos para la conversión: centenas, decenas, unidades, y el número binario inicial.
2. BCD Binario
Centenas
(4 bits)
Decenas
(4 bits)
Unidades
(4 bits)
Número binario
(9 dígitos)
2. Código Gray: El código binario reflejado o código Gray, nombrado así en honor del
investigador Frank Gray, es un sistema de numeración binario en el que dos valores
sucesivos difieren solamente en uno de sus dígitos.
El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.
Este código pertenece a una clase d códigos llamada código de cambio mínimo, en los
cuales solo un bit del grupo d código cambia cuando pasa d una etapa a la siguiente. El
código Gray es un código de sin valor, es decir, las posiciones de los bits en los grupos
de código no tienen valor específicos. Debido a esto el código no se ajusta a las
operaciones aritméticas sino que haya aplicación en dispositivos de entrada y salida y
algunos tipos de convertidores de analógico a digital.
Historia y aplicaciones prácticas:
El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de
Honor.
El código Gray es atribuido en algunas ocasiones, en forma incorrecta, a Elisha
Gray (en Principles of Pulse Code Modulation, K. W. Cattermole, por ejemplo.)
Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban
con válvulas de vacío y dispositivos electromecánicos.
Los contadores necesitaban potencias muy elevadas a la entrada y generaban picos
de ruido cuando varios bits cambiaban simultáneamente. Tomando esto en cuenta,
Frank Gray inventó un método para convertir señales analógicas a grupos de código
binario reflejado utilizando un aparato diseñado con válvulas de vacío, con lo cual
garantizó que en cualquier transición variaría tan sólo un bit.
En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de
los mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de
diseño" en la implementación de circuitos combinacionales y circuitos secuenciales. La
vigencia del código Gray se debe a que un diseño digital eficiente requerirá
transiciones más simples y rápidas entre estados lógicos (0 ó 1), por ello es que se
persisten en su uso, a pesar de que los problemas de ruido y potencia se hayan
reducido con la tecnología de estado sólido de los circuitos integrados.
3. Utilizando el código Gray es posible también resolver el problema de las Torres de
Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada
bit se puede ver como una dimensión.
Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.
Otra aplicación del código Gray s da cuando datos analógicos se representan mediante
un cambio continuo en la posición de un eje o fecha. El eje se divide en segmentos, y
se asigna un número a cada segmento. Si hacemos que segmentos adyacentes
correspondan a la sucesión del código Gray, se elimina la ambigüedad cuando la
detección se efectúa en la línea que separa dos segmentos cualesquiera.
Conversiones:
Binario a Gray: Para pasar un número binario al código binario Gray, hay una regla fácil
de implementar en un lenguaje de programación:
Un número en binario siempre empieza en 1 --Los ceros a la izquierda no cuentan--;
Pues en Gray también. Ej: 1000011110000 en binario se escribe 1xxxxXXXXxxxx.
Ahora nos fijamos en el segundo dígito. Si es igual al dígito anterior se pone un 0 (no
cambia); Si es diferente --como es el caso, pues el dígito anterior era un 1 y el que
observamos un 0-- se pondrá un 1 (cambia). Ej: El número del ejemplo anterior será:
11xxxXXXXxxxx.
En los casos sucesivos se repite el paso anterior, observando en el número binario
'natural' el dígito anterior al que se evalúa. Ej: El número del ejemplo anterior, pasado
a código Gray será: 1100010001000.
Secuencia Binario Gray Secuencia Binario Gray
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000
Gray a Binario: Hacer el cambio contrario es simplemente invertir lo que hace el
anterior, de forma que si se encuentra un cero (siempre que no sea al principio) se
debe poner la cifra anterior; En cambio si pone un 1 es porque la cifra ha cambiado así
que si había un 0 ahora se pone un 1 y viceversa.
4. 3. Código Hamming: es un código detector y corrector de errores que lleva el nombre
de su inventor, Richard Hamming. En los datos codificados en Hamming se pueden
detectar errores en un bit y corregirlos, sin embargo no se distingue entre errores de
dos bits y de un bit (para lo que se usa Hamming extendido). Esto representa una
mejora respecto a los códigos con bit de paridad, que pueden detectar errores en sólo
un bit, pero no pueden corregirlo.
Características:
Ponderación: La mayoría de los sistemas de numeración actuales son ponderados es
decir, cada posición de una secuencia de dígitos tiene asociado un peso. El sistema
binario es, de hecho, un sistema de numeración posicional ponderado. Sin embargo,
algunos códigos binarios, como el código Gray no son ponderados es decir, no tienen
un peso asociado a cada posición. Otros, como el mismo código binario natural o el
BCD natural sí lo son.
Distancia: La distancia es una característica sólo aplicable a las combinaciones binarias.
La distancia entre dos combinaciones es el número de bits que cambian de una a otra.
Por ejemplo: si se tienen las combinaciones de cuatro bits 0010 y 0111
correspondientes al 2 y al 7 en binario natural, se dirá que la distancia entre ellas es
igual a dos ya que de una a otra cambian dos bits.
La distancia es una característica que, además, sólo se aplica a las combinaciones
binarias. En resumen, la distancia entre dos combinaciones es el número de bits que
cambian de una a otra.
Continuidad: La continuidad es una característica de los códigos binarios que cumplen
todas las posibles combinaciones del código que son adyacentes, es decir, que de
cualquier combinación del código a la siguiente cambia un sólo bit. En este caso se dice
que el código es continuo. Cuando la última combinación del código es, a su vez,
adyacente a la primera, se trata de un código cíclico.
Aplicaciones:
Electrónica: El BCD es muy común en sistemas electrónicos donde se debe mostrar un
valor numérico, especialmente en los sistemas digitales no programados (sin
microprocesador o microcontrolador).
Es Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que
deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a
su vez una simplificación en el diseño físico del circuito (hardware).
Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito
sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
5. b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.
Código Hamming: Es un código que se utiliza en la detección y corrección de
errores que se producen en la transmisión de códigos binarios, la palabra de código
se conforma por los bits de comprobación y los bits de información.
Fundamentos: el código Hamming plantea ingresar a la tabla un número adicional con
el propósito de encontrar más de un bit dañado, esto lo logra mediante el
desarrollo de matrices estas matrices se computan para poder detectar y corregir un
bit dañado e informar cuando hay dos o más bit dañados en el proceso. El
proceso matricial es como lo desarrollaría realmente un sistema de cómputo.
Características:
Para la generación del código Hamming se deben tener en cuenta tres características
variables que mencionaremos a continuación:
N: número de bits del código original que se pretende transmitir.
P: número de bits de paridad par generados en el transmisor, o sea, número de
líneas que añadimos al código inicial.
C: número de bits detectores de paridad par generados por el receptor.
El valor de p = c, ya que los bits de paridad generados tanto en el
transmisor como en el receptor debe ser la misma.
El número de combinaciones que se pueden formar con los c bits detectores de
paridad tiene que ser mayor o igual que el número de líneas del código original (n)
más el número de líneas de paridad añadidas (p) más uno, este último para con
templar el caso de no error.
Aplicaciones y uso: Código Hamming sirve para detectar errores en una secuencia de
bits por medio de un control de paridad. Para esto se añade un bit de control a la
secuencia original que indique si la suma de los bits es par o impar, con el ejemplo se
puede entender más fácilmente
4. Código ASCII:
El código ASCII (siglas en ingles para American Standard Code for Information
Interchange, es decir Código Americano ( Je! lease estadounidense... ) Estándar para el
intercambio de Información) (se pronuncia Aski).
Fue creado en 1963 por el Comité Estadounidense de Estándares o "ASA", este
organismo cambio su nombre en 1969 por "Instituto Estadounidense de Estándares
Nacionales" o "ANSI" como se lo conoce desde entonces.
6. Este código nació a partir de reordenar y expandir el conjunto de símbolos y caracteres
ya utilizados en aquel momento en telegrafía por la compañía Bell. En un primer
momento solo incluía letras mayúsculas y números, pero en 1967 se agregaron las
letras minúsculas y algunos caracteres de control, formando así lo que se conoce como
US-ASCII, es decir los caracteres del 0 al 127.
Así con este conjunto de solo 128 caracteres fue publicado en 1967 como estándar,
conteniendo todos lo necesario para escribir en idioma ingles.
En 1981, la empresa IBM desarrolló una extensión de 8 bits del código ASCII, llamada
"pagina de código 437", en esta versión se reemplazaron algunos caracteres de control
obsoletos, por caracteres gráficos. Además se incorporaron 128 caracteres nuevos, con
símbolos, signos, gráficos adicionales y letras latinas, necesarias para la escrituras de
textos en otros idiomas, como por ejemplo el español. Así fue como se sumaron los
caracteres que van del ASCII 128 al 255.
IBM incluyó soporte a esta página de código en el hardware de su modelo 5150,
conocido como "IBM-PC", considerada la primera computadora personal. El sistema
operativo de este modelo, el "MS-DOS" también utilizaba el código ASCII extendido.
Código Ascii: Es un código de caracteres basado en el alfabeto latino, tal como se usa
en inglés moderno. Fue creado en 1963 por el Comité Estadounidense de Estándares
(ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares
Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos
utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y
se redefinieron algunos códigos de control para formar el código conocido como US-
ASCII.
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente
empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la
transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres
de 8 bits, como el estándar ISO-8859-1, que es una extensión que utiliza 8 bits para
proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el
español.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por
última vez en 1986. En la actualidad define códigos para 32 caracteres no imprimibles,
de los cuales la mayoría son caracteres de control que tienen efecto sobre cómo se
procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración
(empezando por el carácter espacio).
7. Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión
compatible para representar textos y para el control de dispositivos que manejan texto
como el teclado. No deben confundirse los códigos ALT+número de teclado con los
códigos ASCII.
Como utilizar el código ASCII:
Sin saberlo lo utilizas todo el tiempo, cada vez que utilizas algún sistema informatico;
pero si lo que necesitas es obtener algunos de los caracteres no incluidos en tu teclado
debes hacer lo siguiente, por ejemplo:
Como escribir con el teclado, o tipiar: Letra EÑE mayúscula - letra N con tilde - ENIE
WINDOWS: en computadoras con sistema operativo como Windows 8, Win 7, Vista,
Windows Xp, etc.
Para obtener la letra, caracter, signo o símbolo "Ñ" : ( Letra EÑE mayúscula - letra N
con tilde - ENIE ) en ordenadores con sistema operativo Windows:
1) Presiona la tecla "Alt" en tu teclado, y no la sueltes.
2) Sin dejar de presionar "Alt", presiona en el teclado numérico el número "165", que
es el número de la letra o símbolo "Ñ" en el código ASCII.
3) Luego deja de presionar la tecla "Alt" y... ¡Ya está listo! (320) .
Los caracteres de control ASCII:
El código ASCII reserva los primeros 32 códigos (numerados del 0 al 31 en decimal)
para caracteres de control: códigos no pensados originalmente para representar
información imprimible, sino para controlar dispositivos (como impresoras) que
usaban ASCII. Por ejemplo, el carácter 10 representa la función "nueva línea" (line
feed), que hace que una impresora avance el papel, y el carácter 27 representa la tecla
"escape" que a menudo se encuentra en la esquina superior izquierda de los teclados
comunes. El código 127 (los siete bits a uno), otro carácter especial, equivale a
"suprimir" ("delete"). Aunque esta función se asemeja a otros caracteres de control,
los diseñadores de ASCII idearon este código para poder "borrar" una sección de papel
perforado (un medio de almacenamiento popular hasta la década de 1980) mediante
la perforación de todos los agujeros posibles de una posición de carácter concreta,
reemplazando cualquier información previa. Dado que el código 0 era ignorado, fue
posible dejar huecos (regiones de agujeros) y más tarde hacer correcciones. Muchos
de los caracteres de control ASCII servían para marcar paquetes de datos, o para
controlar protocolos de transmisión de datos (por ejemplo ENQuiry, con el significado:
¿hay alguna estación por ahí?, ACKnowledge: recibido o ", Start Of Header: inicio de
cabecera, Start of TeXt: inicio de texto, End of TeXt: final de texto, etc.). ESCape y
8. SUBstitute permitían a un protocolo de comunicaciones, por ejemplo, marcar datos
binarios para que contuviesen códigos con el mismo código que el carácter de
protocolo, y que el receptor pudiese interpretarlos como datos en lugar de como
caracteres propios del protocolo. Los diseñadores del código ASCII idearon los
caracteres de separación para su uso en sistemas de cintas magnéticas. Dos de los
caracteres de control de dispositivos, comúnmente llamados XON y XOFFgeneralmente
ejercían funciones de caracteres de control de flujo para controlar el flujo hacia un
dispositivo lento (como una impresora) desde un dispositivo rápido (como una
computadora), de forma que los datos no saturasen la capacidad de recepción del
dispositivo lento y se perdiesen. Los primeros usuarios de ASCII adoptaron algunos de
los códigos de control para representar "metainformación" como final-de-línea,
principio/final de un elemento de datos, etc. Estas asignaciones a menudo entraban en
conflicto, así que parte del esfuerzo de convertir datos de un formato a otro comporta
hacer las conversiones correctas de metainformación. Por ejemplo, el carácter que
representa el final-de-línea en ficheros de texto varía con el sistema operativo. Cuando
se copian archivos de un sistema a otro, el sistema de conversión debe reconocer estos
caracteres como marcas de final-de-línea y actuar en consecuencia. Actualmente los
usuarios de ASCII usan menos los caracteres de control, (con algunas excepciones
como "retorno de carro" o "nueva línea"). Los lenguajes modernos de etiquetas, los
protocolos modernos de comunicación, el paso de dispositivos basados en texto a
basados en gráficos, el declive de las teleimpresoras, las tarjetas perforadas y los
papeles continuos han dejado obsoleta la mayoría de caracteres de control.
Binario Decimal Hex Abreviatura Repr AT Nombre/Significado
0000 0000 0 00 NUL ␀ ^@ Carácter Nulo
0000 0001 1 01 SOH ␁ ^A Inicio de Encabezado
0000 0010 2 02 STX ␂ ^B Inicio de Texto
0000 0011 3 03 ETX ␃ ^C Fin de Texto
0000 0100 4 04 EOT ␄ ^D Fin de Transmisión
0000 0101 5 05 ENQ ␅ ^E Consulta
0000 0110 6 06 ACK ␆ ^F Acuse de recibo
0000 0111 7 07 BEL ␇ ^G Timbre
0000 1000 8 08 BS ␈ ^H Retroceso
0000 1001 9 09 HT ␉ ^I Tabulación horizontal
9. 0000 1010 10 0A LF ␊ ^J Salto de línea
0000 1011 11 0B VT ␋ ^K Tabulación Vertical
0000 1100 12 0C FF ␌ ^L De avance
0000 1101 13 0D CR ␍ ^M Retorno de carro
0000 1110 14 0E SO ␎ ^N Mayúsculas fuera
0000 1111 15 0F SI ␏ ^O En mayúsculas
0001 0000 16 10 DLE ␐ ^P Enlace de datos / Escape
0001 0001 17 11 DC1 ␑ ^Q Dispositivo de control 1 — oft. XON
0001 0010 18 12 DC2 ␒ ^R Dispositivo de control 2
0001 0011 19 13 DC3 ␓ ^S Dispositivo de control 3 — oft. XOFF
0001 0100 20 14 DC4 ␔ ^T Dispositivo de control 4
0001 0101 21 15 NAK ␕ ^U Confirmación negativa
0001 0110 22 16 SYN ␖ ^V Síncrono en espera
0001 0111 23 17 ETB ␗ ^W Fin de Transmisión del Bloque
0001 1000 24 18 CAN ␘ ^X Cancelar
0001 1001 25 19 EM ␙ ^Y Finalización del Medio
0001 1010 26 1A SUB ␚ ^Z Substituto
0001 1011 27 1B ESC ␛ ^[ or ESC Escape
0001 1100 28 1C FS ␜ ^ Separador de fichero
0001 1101 29 1D GS ␝ ^] Separador de grupo
0001 1110 30 1E RS ␞ ^^ Separador de registro
0001 1111 31 1F US ␟ ^_ Separador de unidad
0111 1111 127 7F DEL ␡ ^?, Eliminar
10. Caracteres imprimibles ASCII
El carácter 'espacio', designa al espacio entre palabras, y se produce normalmente por
la barra espaciadora de un teclado. Los códigos del 33 al 126 se conocen como
caracteres imprimibles, y representan letras, dígitos, signos de puntuación y varios
símbolos. El ASCII de siete bits proporciona siete caracteres "nacionales" y, si la
combinación concreta de hardware y software lo permite, puede utilizar
combinaciones de teclas para simular otros caracteres internacionales: en estos casos
un backspace puede preceder a un acento abierto o grave (en los estándares británico
y estadounidense, pero sólo en estos estándares, se llama también "opening single
quotation mark"), una tilde o una "marca de respiración".
Binario Dec Hex Representación
0010 0000 32 20 espacio ( )
0010 0001 33 21 !
0010 0010 34 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D -
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
11. Conversiones entre valores ASCII, decimales, hexadecimales, octales y binarios
ASCII Decimal Hexadecimal Octal Binario
nulo 0 0 0 0
inicio de cabecera 1 1 1 1
inicio de texto 2 2 2 10
final de texto 3 3 3 11
final de transmisión 4 4 4 100
consulta 5 5 5 101
reconocimiento 6 6 6 110
avisador 7 7 7 111
retroceso 8 8 10 1000
tabulador horizontal 9 9 11 1001
avance de línea 10 A 12 1010
tabulador vertical 11 B 13 1011
avance de página 12 C 14 1100
retorno de carro 13 D 15 1101
desplazamiento a
teclado ideográfico
14 E 16 1110
desplazamiento a
teclado estándar
15 F 17 1111
escape de enlace de
datos
16 10 20 10000
control de
dispositivos 1/Xon
17 11 21 10001
control de
dispositivos 2
18 12 22 10010
control de
dispositivos 3/Xoff
19 13 23 10011
control de
dispositivos 4
20 14 24 10100
reconocimiento
negativo
21 15 25 10101
desocupado
síncrono
22 16 26 10110
final de bloque de
transmisión
23 17 27 10111
cancelar 24 18 30 11000
final del soporte de
almacenamiento
25 19 31 11001
5.) Código de paridad par e impar:
Paridad: es un dígito binario que indica si el número de bits con un valor de 1 en un
conjunto de bits es par o impar. Los bits de paridad conforman el método de detección
de errores más simple. La paridad par es un caso especial del control de redundancia
cíclica (CRC), donde el bit de CRC se genera por el polinomio x+1.
12. Nótese que este método detecta los errores, pero no los corrige (salvo en el caso de
que la palabra transmitida sea de tamaño 1 bit). Existen dos variantes de este método,
bit de paridad par y bit de paridad impar:
En el caso de la paridad par, se cuentan el número de unos. Si el total es impar, el bit
de paridad se establece en uno y por tanto la suma del total anterior con este bit de
paridad, daría par. Si el conteo de bits uno es par, entonces el bit de paridad (par) se
deja en 0, pues ya es par.
En el caso de la paridad impar, la situación es la contraria. Se suman los bits cuyo valor
es uno, si da un número impar de bits, entonces el bit de paridad (impar) es cero. Y si
la suma de los bits cuyo valor es uno es par, entonces el bit de paridad (impar) se
establece en uno, haciendo impar la cuenta total de bits uno.
Característica: Tenemos el carácter original 0111001. Vemos que la trama a transmitir
tiene un número par de unos (4 unos). 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, añadiremos 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 el 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. En la comprobación, al
contar el número de unos salen 3 (impar), por lo que se ha producido un error.
Paridad impar: se recibe 10110001 en vez de 10111001. En la comprobación, al
contar el número de unos salen 4 (par), por lo que se ha producido un error.
Siguiendo los ejemplos anteriores, y alterando dos bits en la transmisión, veremos
como el método de detección de errores falla:
Paridad par: se recibe 00110101 en vez de 00111001. Al comprobar el número
de unos salen 4 (par), y no se detectan los errores.
Paridad impar: se recibe 10110101 en vez de 10111001. Al comprobar el
número de unos salen 5 (impar), y no se detectan los errores.
7 bits de datos byte con bit de paridad
par impar
0000000 00000000 00000001
1010001 10100011 10100010
1101001 11010010 11010011
1111111 11111111 11111110
13. 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 valor del 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).
Así, para el código de paridad par el número de unos contando el carácter original y el
bit de paridad tiene que ser par. Por lo tanto, el bit de paridad será un 0 si el número
total de unos a transmitir es par y un 1 para un número impar de unos.
Por el contrario, para el código de paridad impar el número de unos contando el
carácter original y el bit de paridad ha de ser impar. De esta forma, el bit de paridad
será un 0 si el número total de unos es impar y un 1 para un número par de unos.
Normalmente el bit de paridad se añade a la izquierda del carácter original.
Este método, aunque resulta satisfactorio en general, puede detectar sólo un número
impar de errores de transmisión. Es decir, 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.