Sei sulla pagina 1di 22

CODIGO ASCII

Para otros usos de este trmino, vase ASCII (desambiguacin).


Hay 95 caracteres ASCII imprimibles, numerados del 32 al 126.
ASCII (acrnimo ingls de American Standard Code for Information Interchange
Cdigo Estadounidense Estndar para el Intercambio de Informacin), pronunciado
generalmente [ski], es un cdigo de caracteres basado en el alfabeto latino tal como se
usa en ingls moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comit
Estadounidense de Estndares (ASA, conocido desde 1969 como el Instituto
Estadounidense de Estndares Nacionales, o ANSI) como una refundicin o evolucin de
los conjuntos de cdigos utilizados entonces en telegrafa. Ms tarde, en 1967, se
incluyeron las minsculas, y se redefinieron algunos cdigos de control para formar el
cdigo conocido como US-ASCII.
El cdigo 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
transmisin. A menudo se llama incorrectamente ASCII a otros cdigos de caracteres de 8
bits, como el estndar ISO-8859-1 que es una extensin que utiliza 8 bits para proporcionar
caracteres adicionales usados en idiomas distintos al ingls, como el espaol.
ASCII fue publicado como estndar por primera vez en 1967 y fue actualizado por ltima
vez en 1986. En la actualidad define cdigos para 33 caracteres no imprimibles, de los
cuales la mayora son caracteres de control obsoletos que tienen efecto sobre cmo se
procesa el texto, ms otros 95 caracteres imprimibles que les siguen en la numeracin
(empezando por el carcter espacio).
Casi todos los sistemas informticos actuales utilizan el cdigo ASCII o una extensin
compatible para representar textos y para el control de dispositivos que manejan texto como
el teclado. No deben confundirse los cdigos ALT+nmero de teclado con los cdigos
ASCII.

Vista general
Las computadoras solamente entienden nmeros. El cdigo ASCII es una representacin
numrica de un carcter como a o @.1

Como otros cdigos de formato de representacin de caracteres, el ASCII es un mtodo


para una correspondencia entre cadenas de bits y una serie de smbolos (alfanumricos y
otros), permitiendo de esta forma la comunicacin entre dispositivos digitales as como su
procesado y almacenamiento. El cdigo de caracteres ASCII2 o una extensin compatible
(ver ms abajo) se usa casi en todos los ordenadores, especialmente con ordenadores
personales y estaciones de trabajo. El nombre ms apropiado para este cdigo de caracteres
es "US-ASCII".3
ASCII es, en sentido estricto, un cdigo de siete bits, lo que significa que usa cadenas de
bits representables con siete dgitos binarios (que van de 0 a 127 en base decimal) para
! " # $ % & ' ( ) * +, -. / 0 1 2 3 4 5 6 7 8 9 :; < = > ?
@ AB C D E F G H I J K LM N O PQ R S T U VW X YZ [ \ ] ^ _
`abcdefghijklmnopqrstuvwxyz{|}~

representar informacin de caracteres. En el momento en el que se introdujo el cdigo


ASCII muchos ordenadores trabajaban con grupos de ocho bits (bytes u octetos), como la
unidad mnima de informacin; donde el octavo bit se usaba habitualmente como bit de
paridad con funciones de control de errores en lneas de comunicacin u otras funciones
especficas del dispositivo. Las mquinas que no usaban la comprobacin de paridad
asignaban al octavo bit el valor cero en la mayora de los casos, aunque otros sistemas
como las computadoras Prime, que ejecutaban PRIMOS ponan el octavo bit del cdigo
ASCII a uno.
El cdigo ASCII define una relacin entre caracteres especficos y secuencias de bits;
adems de reservar unos cuantos cdigos de control para el procesador de textos, y no
define ningn mecanismo para describir la estructura o la apariencia del texto en un
documento; estos asuntos estn especificados por otros lenguajes como los lenguajes de
etiquetas.

[editar] Historia

La carta de Cdigo ASCII 1968 de los E.E.U.U. fue estructurada con dos columnas de
caracteres de control, una columna con caracteres especiales, una columna con nmeros, y
cuatro columnas de letras
El cdigo ASCII se desarroll en el mbito de la telegrafa y se us por primera vez
comercialmente como un cdigo de teleimpresin impulsado por los servicios de datos de
Bell. Bell haba planeado usar un cdigo de seis bits, derivado de Fieldata, que aada
puntuacin y letras minsculas al ms antiguo cdigo de teleimpresin Baudot, pero se les
convenci para que se unieran al subcomit de la Agencia de Estndares Estadounidense
(ASA), que haban empezado a desarrollar el cdigo ASCII. Baudot ayud en la
automatizacin del envo y recepcin de mensajes telegrficos, y tom muchas
caractersticas del cdigo Morse; sin embargo, a diferencia del cdigo Morse, Baudot us
cdigos de longitud constante. Comparado con los primeros cdigos telegrficos, el cdigo
propuesto por Bell y ASA result en una reorganizacin ms conveniente para ordenar
listas (especialmente porque estaba ordenado alfabticamente) y aadi caractersticas
como la 'secuencia de escape'.
La Agencia de Estndares Estadounidense (ASA), que se convertira ms tarde en el
Instituto Nacional Estadounidense de Estndares (ANSI), public por primera vez el cdigo
ASCII en 1963. El ASCII publicado en 1963 tena una flecha apuntando hacia arriba () en
lugar del circunflejo (^) y una flecha apuntando hacia la izquierda en lugar del guin bajo
(_). La versin de 1967 aadi las letras minsculas, cambi los nombres de algunos
cdigos de control y cambi de lugar los dos cdigos de control ACK y ESC de la zona de
letras minsculas a la zona de cdigos de control.
ASCII fue actualizado en consecuencia y publicado como ANSI X3.4-1968, ANSI X3.41977, y finalmente ANSI X3.4-1986.
Otros rganos de estandarizacin han publicado cdigos de caracteres que son idnticos a
ASCII. Estos cdigos de caracteres reciben a menudo el nombre de ASCII, a pesar de que
ASCII se define estrictamente solamente por los estndares ASA/ANSI:

La Asociacin Europea de Fabricantes de Ordenadores (ECMA) public ediciones


de su clon de ASCII, ECMA-6 en 1965, 1967, 1970, 1973, 1983, y 1991. La edicin
de 1991 es idntica a ANSI X3.4-1986.4

La Organizacin Internacional de Estandarizacin (ISO) public su versin, ISO


646 (ms tarde ISO/IEC 646) en 1967, 1972, 1983 y 1991. En particular, ISO
646:1972 estableci un conjunto de versiones especficas para cada pas donde los
caracteres de puntuacin fueron reemplazados con caracteres no ingleses. ISO/IEC
646:1991 La International Reference Version es la misma que en el ANSI X3.41986.

La Unin Internacional de Telecomunicaciones (ITU) public su versin de ANSI


X3.4-1986, Recomendacin ITU T.50, en 1992. A principios de la dcada de 1970
public una versin como Recomendacin CCITT V.3.

DIN public una versin de ASCII como el estndar DIN 66003 en 1974.

El Grupo de Trabajo en Ingeniera de Internet (IETF) public una versin en 1969


como RFC 20, y estableci la versin estndar para Internet, basada en ANSI X3.41986, con la publicacin de RFC 1345 en 1992.

La versin de IBM de ANSI X3.4-1986 se public en la literatura tcnica de IBM


como pgina de cdigos 367.

El cdigo ASCII tambin est incluido en su probable relevo, Unicode, constituyendo los
primeros 128 caracteres (o los 'ms bajos').

[editar] Los caracteres de control ASCII


El cdigo ASCII reserva los primeros 32 cdigos (numerados del 0 al 31 en decimal) para
caracteres de control: cdigos no pensados originalmente para representar informacin
imprimible, sino para controlar dispositivos (como impresoras) que usaban ASCII. Por
ejemplo, el carcter 10 representa la funcin "nueva lnea" (line feed), que hace que una
impresora avance el papel, y el carcter 27 representa la tecla "escape" que a menudo se
encuentra en la esquina superior izquierda de los teclados comunes.
El cdigo 127 (los siete bits a uno), otro carcter especial, equivale a "suprimir" ("delete").
Aunque esta funcin se asemeja a otros caracteres de control, los diseadores de ASCII
idearon este cdigo para poder "borrar" una seccin de papel perforado (un medio de
almacenamiento popular hasta la dcada de 1980) mediante la perforacin de todos los
agujeros posibles de una posicin de carcter concreta, reemplazando cualquier
informacin previa. Dado que el cdigo 0 era ignorado, fue posible dejar huecos (regiones
de agujeros) y ms tarde hacer correcciones.
Muchos de los caracteres de control ASCII servan para marcar paquetes de datos, o para
controlar protocolos de transmisin de datos (por ejemplo ENQuiry, con el significado:
hay alguna estacin 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
SUBstitute permitan a un protocolo de comunicaciones, por ejemplo, marcar datos binarios
para que contuviesen cdigos con el mismo cdigo que el carcter de protocolo, y que el
receptor pudiese interpretarlos como datos en lugar de como caracteres propios del
protocolo.
Los diseadores del cdigo ASCII idearon los caracteres de separacin para su uso en
sistemas de cintas magnticas.
Dos de los caracteres de control de dispositivos, comnmente llamados XON y XOFF
generalmente ejercan funciones de caracteres de control de flujo para controlar el flujo a
hacia un dispositivo lento (como una impresora) desde un dispositivo rpido (como un
ordenador), de forma que los datos no saturasen la capacidad de recepcin del dispositivo
lento y se perdiesen.

Los primeros usuarios de ASCII adoptaron algunos de los cdigos de control para
representar "metainformacin" como final-de-lnea, 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
metainformacin. Por ejemplo, el carcter que representa el final-de-lnea en ficheros de
texto vara con el sistema operativo. Cuando se copian archivos de un sistema a otro, el
sistema de conversin debe reconocer estos caracteres como marcas de final-de-lnea y
actuar en consecuencia.
Actualmente los usuarios de ASCII usan menos los caracteres de control, (con algunas
excepciones como "retorno de carro" o "nueva lnea"). Los lenguajes modernos de
etiquetas, los protocolos modernos de comunicacin, el paso de dispositivos basados en
texto a basados en grficos, el declive de las teleimpresoras, las tarjetas perforadas y los
papeles continuos han dejado obsoleta la mayora de caracteres de control.

Decima
l

He
x

Abreviatur
a

Rep
r

0000 000
0

00

NUL

^@

Carcter Nulo

0000 000
1

01

SOH

^A

Inicio de Encabezado

0000 001
0

02

STX

^B

Inicio de Texto

0000 001
1

03

ETX

^C

Fin de Texto

0000 010
0

04

EOT

^D

Fin de Transmisin

0000 010
1

05

ENQ

^E

Consulta

0000 011
0

06

ACK

^F

Acuse de recibo

0000 011
1

07

BEL

^G

Timbre

Binario

AT

Nombre/Significado

0000 100
0

08

BS

^H

Retroceso

0000 100
1

09

HT

^I

Tabulacin horizontal

0000 101
0

10

0A

LF

^J

Salto de lnea

0000 101
1

11

0B

VT

^K

Tabulacin Vertical

0000 110
0

12

0C

FF

^L

De avance

0000 110
1

13

0D

CR

^M

Retorno de carro

0000 111
0

14

0E

SO

^N

Maysculas fuera

0000 111
1

15

0F

SI

^O

En maysculas

0001 000
0

16

10

DLE

^P

Enlace de datos /
Escape

0001 000
1

17

11

DC1

^Q

Dispositivo de
control 1 oft. XON

0001 001
0

18

12

DC2

^R

Dispositivo de
control 2

19

13

DC3

0001 010
0

20

14

DC4

^T

Dispositivo de
control 4

0001 010
1

21

15

NAK

^U

Confirmacin
negativa

0001 011

22

16

SYN

^V

Sncrono en espera

0001 001
1

^S

Dispositivo de
control 3 oft.
XOFF

0
0001 011
1

23

17

ETB

^W

Fin de Transmision
del Bloque

0001 100
0

24

18

CAN

^X

Cancelar

0001 100
1

25

19

EM

^Y

Finalizacin del
Medio

0001 101
0

26

1A

SUB

^Z

Substituto

0001 101
1

27

1B

ESC

^[ or ESC

Escape

0001 110
0

28

1C

FS

^\

Separador de fichero

0001 110
1

29

1D

GS

^]

Separador de grupo

0001 111
0

30

1E

RS

^^

Separador de registro

0001 111
1

31

1F

US

^_

Separador de unidad

^?, Delete
o
Backspace

Eliminar

0111 1111

127

7F

DEL

CDIGO ASCII.
ASCII: American Standard Code Interchange Information. Cada caracter alfanumrico
esta formado por una cadena de siete bits. Este cdigo representa 128 smbolos
diferentes entre dgitos, letras e instrucciones de control del computador. La tabla 1.xx
muestra los smbolos con su respectivo valor hexadecimal. Por ejemplo, para codificar
la palabra UNEXPO se procede de la siguiente forma:
1010101 1001110 1000101 1011000 1010000 1001111

U
55H

Tabla 1.8. Cdigo ASCII.

B3B2B1B0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

1101
1110
1111

Cdigo biquinario
El cdigo biquinario es un sistema de numeracin usado en bacos y en algunos de los
primeros ordenadores, como el Colossus. El trmino biquinario se refiere a que el cdigo
tiene una parte de dos estados (bi) y otra de cinco estados (quin).
Existen varias representaciones de un decimal codificado en biquinario, ya que:

el componente de dos estados se puede representar tanto con uno como con dos bits

y el componente de cinco estados, tanto con tres como con cinco bits

IBM 650

Indicadores biquinarios en el panel frontal del IBM 650.

El IBM 650 tena 7 bits: dos para la componente binaria (pesos 0 5) y cinco para la
componente quinaria (pesos 0 1 2 3 4). En la foto a la derecha se pueden observar estos
indicadores: hay 16 de ellos, cada uno con una columna de 5 luces, con las otras dos arriba
a los lados.

Valor

Bits 05-01234

10-10000

10-01000

10-00100

10-00010

10-00001

01-10000

01-01000

01-00100

01-00010

01-00001

[editar] UNIVAC Solid State

El ordenador UNIVAC Solid State usaba 4 bits: 1 para la parte binaria (peso 5), y 3 para la
quinaria (pesos 4 2 1). Adems tena 1 bit de paridad.
Valor

Bits p-5-421

1-0-000

0-0-001

0-0-010

1-0-011

0-0-100

0-1-000

1-1-001

1-1-010

0-1-011

1-1-100

[editar] LARC

El LARC de UNIVAC tena 4 bits: 1 para la parte binaria (peso 5) y 3 para la parte
quinaria, que siguen un orden de contador en anillo. Tiene tambin 1 bit de paridad.
Valor

Bits p-5-qqq

1-0-000

0-0-001

1-0-011

0-0-111

1-0-110

0-1-000

1-1-001

0-1-011

1-1-111

0-1-110

CDIGO BIQUINARIO.

Necesita siete bits para formarse; siempre hay dos bits en nivel alto (uno) y los
restantes cinco deben estar en nivel bajo (cero). El primer bit del cdigo, en uno, se usa
para indicar si el dgito se encuentra comprendido entre 5 y 9; el segundo bit del
cdigo, en uno, seala que se encuentra en el rango de 0 a 4. La desventaja de este
cdigo es la cantidad de bits que se deben utilizar para transmitir informacin, siete
por cada dgito. Sin embargo, tiene la ventaja de poder realizar fciles algoritmos para
el chequeo de errores de transmisin; solamente se debe detectar que hayan dos bits,
en nivel uno, por cada dato. Uno de estos se debe encontrar entre los primeros dos bits
y el otro en los cinco restantes que forman el dgito.

CDIGO DOS DE CINCO.


Este cdigo es similar al Biquinario, pero requiere de cinco bits para el correcto
funcionamiento. Dos bits deben estar en nivel alto y los otros tres en cero.

El cdigo 2 entre 5, a veces confundido con el biquinario, es un cdigo utilizado para la


deteccin de errores en transmisiones digitales.
Existen varios mtodos para la codificacin mediante el sistema 2 entre 5. A continuacin
se explica uno de ellos:
Se trata de un cdigo ponderado donde los pesos para los 4 primeros bits son 1,2,3,6. El bit
ms significativo se utiliza para completar la paridad par. Tiene dos caractersticas a tener
en cuenta:
- No existe codificacin para el 0; hay que inventarse una.
- Slo puede haber dos bits a 1 entre los cinco bits (de ah su nombre).
Si partimos de los pesos directos vemos que podemos codificar los nmeros 1, 2, 3 y 6
utilizando un solo bit. En estos nmeros se activa el bit de paridad a 1 para cumplir la
paridad par, quedando los nmeros de esta manera:
Decimal

2 entre 5

11000

2
3
6

10100
10010
10001

El resto de nmeros (4, 5, 7, 8 y 9) los formaremos por combinacin de dos bits (suma de
pesos):

Decimal suma

2 entre 5

3+1

01010

5
7
8
9

3+2
6+1
6+2
3+6

00110
01001
00101
00011

Como ya hemos utilizado los dos bits posibles, no hace falta el bit de paridad, por lo que
permanece a 0
El 3 tambin podamos haberlo obtenido mediante 2+1. Esta duplicidad es la que se
selecciona para representar el 0, ya que el 3 tiene su propio bit de peso igual a 3.

Decimal

2 entre 5

01100

Tambin puede ser un cdigo no ponderado, en el que los valores son:


0 = 00011
1 = 00101
2 = 00110
3 = 01001
4 = 01010
5 = 01100
6 = 10001
7 = 10010
8 = 10100
9 = 11000

CDIGO AIKEN O 2421.


La ponderacin de este cdigo es diferente al BCD, para hallar su peso se debe tomar
tambin grupos de cuatro bits, considerando los valores 2421, por dgito decimal.
Este cdigo se conoce como autocomplementado a uno porque sus diez valores, en la
tabla 1.6; se pueden formar, complementando, a partir de los primeros cinco dgitos.

Bit es el acrnimo de Binary digit. (dgito binario). Un bit es un dgito del sistema de
numeracin binario.
Mientras que en el sistema de numeracin decimal se usan diez dgitos, en el binario se
usan slo dos dgitos, el 0 y el 1. Un bit o dgito binario puede representar uno de esos dos
valores, 0 1.
Se puede imaginar un bit, como una bombilla que puede estar en uno de los siguientes dos
estados:
El bit es la unidad mnima de informacin empleada en informtica, en cualquier
dispositivo digital, o en la teora de la informacin. Con l, podemos representar dos
valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o
sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado
de "apagado" (0), y el otro al estado de "encendido" (1).

apagada

o encendida

Byte es una palabra inglesa (pronunciada [bait] o ['bi.te]), que si bien la Real Academia
Espaola ha aceptado como equivalente a octeto (es decir a ocho bits), para fines correctos,
un byte debe ser considerado como una secuencia de bits contiguos, cuyo tamao depende
del cdigo de informacin o cdigo de caracteres en que sea definido. La unidad byte no
tiene smbolo establecido internacionalmente, aunque en pases anglosajones es frecuente B
mientras que en los francfonos es o (de octet); la ISO y la IEC en la norma 80000-13:2008
recomiendan restringir el empleo de esta unidad a los octetos (bytes de 8 bit).
Se usa comnmente como unidad bsica de almacenamiento de informacin en
combinacin con los prefijos de cantidad. Originalmente el byte fue elegido para ser un
submltiplo del tamao de palabra de un ordenador, desde cinco a doce bits. La
popularidad de la arquitectura IBM S/360 que empez en los aos 1960 y la explosin de
las microcomputadoras basadas en microprocesadores de 8 bits en los aos 1980 ha hecho

obsoleta la utilizacin de otra cantidad que no sean 8 bits. El trmino octeto se utiliza
ampliamente como un sinnimo preciso donde la ambigedad es indeseable (por ejemplo,
en definiciones de protocolos).

Cdigo Hamming
De Wikipedia, la enciclopedia libre
Saltar a navegacin, bsqueda

En informtica, el cdigo de Hamming es un cdigo 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 cdigos con bit de paridad, que pueden detectar errores en slo un bit, pero
no pueden corregirlo.
Contenido
[ocultar]

1 Cdigos pre-Hamming
o

1.1 Paridad

1.2 Dos entre cinco

1.3 Repeticin

2 Cdigos Hamming

3 Hamming (7,4)

4 Ejemplo

5 Hamming Extendido

Cdigos pre-Hamming

Antes de los cdigos Hamming se utilizaron ciertos cdigos detectores de error,como lo


fueron el codigo linteing , pero ninguno lleg a ser tan eficaz como los de Hamming. A
continuacin se describen algunos de estos cdigos.

Paridad

La paridad consiste en aadir un bit, denominado bit de paridad, que indique si el nmero
de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por
error en la transmisin, el mensaje cambiar de paridad y el error se puede detectar (ntese
que el bit donde se produzca el error puede ser el mismo bit de paridad). La convencin
ms comn es que un valor de paridad de 1 indica que hay un nmero impar de unos en los
datos, y un valor de paridad de 0 indica que hay un nmero par de unos en los datos.
La comprobacin de paridad no es muy robusta, dado que si cambia de forma uniforme ms
de un solo bit, el bit de paridad ser vlido y el error no ser detectado. Por otro lado, la
paridad, aunque puede detectar que hay error, no indica en qu bit se cometi. Los datos se
deben desechar por entero y volverse a transmitir. En un medio ruidoso, una transmisin
correcta podra tardar mucho tiempo o incluso, en el peor de los casos, no darse nunca. El
chequeo de paridad, aunque no es muy bueno, usa un nico bit, por lo que produce muy
poca sobrecarga, y adems permite la correccin de ese bit si es conocida su posicin.
Dos entre cinco

En los aos 40, Bell utiliz un cdigo algo ms sofisticado conocido como dos-entre-cinco.
Este cdigo se basa en que cada bloque de cinco bits (conocido como penta-bit) tuviera
exactamente dos unos. De este modo, la computadora podra detectar posibles errores
cuando en su entrada no haba exactamente dos unos en cada penta-bit.
Este cdigo segua nicamente detectando errores por cambio en un solo bit; si en un
mismo penta-bit un 0 cambiaba a 1 y un 1 cambiaba a 0, la regla de dos-entre-cinco se
segua cumpliendo y el error quedaba sin descubrir.
Repeticin

Otro cdigo utilizado, consista en repetir cada bit de datos varias veces para asegurarse de
que la transmisin era correcta. Por ejemplo, si el bit de datos que se enva fuera un 1, un
cdigo de repeticin con n=3, enviara "111". Si los tres bits recibidos no eran idnticos,
haba un error. En un ambiente sin demasiado ruido, la mayora de las veces solamente
cambiara un bit en cada paquete de tres bits. Por lo tanto, datos del tipo 001, 010, y 100 se
corresponden al bit 0, mientras que 110, 101, y 011 se corresponden con el bit 1. Es como si
el bit original se obtuviera por mayora en una "votacin". Un cdigo con esta capacidad de
reconstruir el mensaje original en la presencia de errores se conoce como cdigo corrector
de errores.
Sin embargo, este cdigo no puede reparar correctamente todos los errores. En nuestro
ejemplo, si el error en la transmisin provocara el cambio simultneo de dos bits y el
receptor recibiera "001", el sistema detectara el error, pero considerando que el bit original
era 0, lo cual es incorrecto. Si se aumenta el nmero de veces que se repite cada bit a cuatro

(n=4), es posible detectar los errores en dos bits pero obviamente no se podrn corregir; con
cinco, es posible corregir errores de dos bits, pero no lo podr hacer en errores de tres bits.
Por otra parte, el cdigo de la repeticin es extremadamente ineficaz, pues reduce la
velocidad de transmisin por tres en nuestro ejemplo original y su eficacia cae
drsticamente al aumentar el nmero de veces que cada bit se repite para detectar y corregir
ms errores. El uso del cdigo de bloques no lineales para deteccin de errores no es muy
implementado por lo tanto emplearemos el cdigo de errores lineales para la correccin de
errores.
Cdigos Hamming

Si se aaden junto al mensaje ms bits detectores-correctores de error y si esos bits se


pueden ordenar de modo que diferentes bits de error producen diferentes resultados,
entonces los bits errneos podran ser identificados. En un conjunto de siete bits, hay slo
siete posibles errores de bit, por lo que con tres bits de control de error se podra
especificar, adems de que ocurri un error, en qu bit fue.
Hamming estudi los esquemas de codificacin existentes, incluido el de dos entre cinco, y
generaliz sus conclusiones. Para empezar, desarroll una nomenclatura para describir el
sistema, incluyendo el nmero de los bits de datos y el de los bits detectores-correctores de
error en un bloque. Por ejemplo, la paridad incluye un solo bit para cualquier palabra de
datos, as que las palabras del Cdigo ASCII que son de siete bits, Hamming las describa
como un cdigo (8.7), esto es, un total de 8 bits de los cuales 7 son datos. En el ejemplo
anterior de la repeticin, sera un cdigo (3.1), siguiendo la misma lgica. La relacin de la
informacin es el segundo nmero dividido por el primero, por nuestro ejemplo de la
repeticin, 1/3.
Hamming tambin estudi los problemas que surgan al cambiar dos o ms bits a la vez y
describi esto como "distancia" (ahora llamada distancia de Hamming en su honor). La
paridad tiene una distancia de 2, dado que cualquier error en dos bits no ser detectado. La
repeticin (3.1)tiene una distancia de 3, pues son necesarios el cambio simultneo de tres
bits para obtener otra palabra de cdigo. La repeticin (4.1) (cada bit se repite cuatro veces)
tiene una distancia de 4, as que el cambio de dos bits en el mismo grupo quedar sin
definir.
Hamming estaba interesado en solucionar simultneamente dos problemas: aumentar la
distancia tanto como sea posible, a la vez que se aumentan al mximo los bits de
informacin. Durante los aos 40 desarroll varios esquemas de codificacin que
mejoraban notablemente los cdigos existentes. La clave de todos sus sistemas era
intercalar entre los bits de datos los de paridad.

Hamming (7,4)

Hoy, el cdigo de Hamming se refiere al (7.4) que Hamming introdujo en 1950. El cdigo
de Hamming agrega tres bits adicionales de comprobacin por cada cuatro bits de datos del
mensaje.
El algoritmo de Hamming (7.4) puede corregir cualquier error de un solo bit, pero cuando
hay errores en ms de un bit, la palabra transmitida se confunde con otra con error en un
slo bit, siendo corregida, pero de forma incorrecta, es decir que la palabra que se corrige
es otra distinta a la original, y el mensaje final ser incorrecto sin saberlo. Para poder
detectar (aunque sin corregirlos) errores de dos bits, se debe aadir un bit ms, y el cdigo
se llama Hamming extendido. El procedimiento para esto se explica al final.

El algoritmo es el siguiente:
1. Todos los bits cuya posicin es potencia de dos se utilizan como bits
de paridad (posiciones 1, 2, 4, 8, 16, 32, 64, etc.).
2. Los bits del resto de posiciones son utilizados como bits de datos
(posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.).
3. Cada bit de paridad se obtiene calculando la paridad de alguno de los
bits de datos. La posicin del bit de paridad determina la secuencia de
los bits que alternativamente comprueba y salta, a partir de ste, tal y
como se explica a continuacin.

Posicin 1: salta 0, comprueba 1, salta 1, comprueba 1, etc.

Posicin 2: salta 1, comprueba 2, salta 2, comprueba 2, etc.

Posicin 4: salta 3, comprueba 4, salta 4, comprueba 4, etc.

Posicin 8: salta 7, comprueba 8, salta 8, comprueba 8, etc.

Posicin 16: salta 15, comprueba 16, salta 16, comprueba 16, etc.

Regla general para la posicin n es: salta n-1 bits, comprueba


n bits, salta n bits, comprueba n bits...

Y as sucesivamente.

En otras palabras, el bit de paridad de la posicin 2k comprueba los bits en las posiciones
que tengan al bit k en su representacin binaria. Dicho a la inversa, el bit 13, por ejemplo,

es chequeado por los bits 8, 4 y 1, al ser estos los de su representacin binaria: 13=1101(2);
8=1000(2); 4=0100(2); 1=0001(2).
As, por ejemplo, para los primeros trminos se tiene:

En la Posicin 1 (2^0 = 1), comprobaramos los bits: 3, 5, 7, 9, 11,


13...

En la Posicin 2 (2^1 = 2), los bits: 3, 6, 7, 10, 11, 14, 15...

En la Posicin 4 (2^2 = 4), los bits: 5, 6, 7, 12, 13, 14, 15, 20, 21,
22, 23...

En la Posicin 8 (2^3 = 8) tendramos: 9, 10, 11, 12, 13, 14, 15,


24-31...

Siguiendo el algoritmo hasta completar la nueva cadena.


Ejemplo

Consideremos la palabra de datos de 7 bits "0110101". Para ver cmo se generan y utilizan
los cdigos Hamming para detectar un error, observe las tablas siguientes. Se utiliza la d
para indicar los bits de datos y la p para los de paridad.
En primer lugar los bits de datos se insertan en las posiciones apropiadas y los bits de
paridad calculados en cada caso usando la paridad par.

p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7

Palabra de datos (sin paridad):

p1

p2

p3

p4

Palabra de datos (con paridad): 1

Clculo de los bits de paridad en el cdigo Hamming

La nueva palabra de datos (con los bits de paridad) es ahora "10001100101". Consideremos
ahora que el bit de la derecha, por error, cambia de 1 a 0. La nueva palabra de datos ser
ahora "10001100100".
Sin errores

p p d p d d d p d d d
1

Palabra de
1 0 0 0 1 1 0 0 1 0 1
datos recibida:

p1

p2

0 0

p3

1 0

Bit de
paridad

1 Correcto

0 1 Correcto

0 1 1 0

p4

Prueba de
paridad

Correcto

0 1 0 1 Correcto

Comprobacin de los bits de paridad (con primer bit de la derecha sin


cambiar)

Con errores

p p d p d d d p d d d
1

Prueba de
paridad

Bit de
paridad

Palabra de
1 0 0 0 1 1 0 0 1 0 0
datos recibida:

p1

p2

0 0

p3

1 0

0 Error

0 0 Error

0 1 1 0

p4

Correcto

0 1 0 0 Error

Comprobacin de los bits de paridad (con primer bit de la derecha


cambiado)

Si se analiza en la tabla anterior la paridad que se debe obtener a la derecha tras la llegada
del mensaje sin errores debe ser siempre 0 (por cada fila), pero en el momento en que
ocurre un error esta paridad cambia a 1, de all el nombre de la columna "prueba de paridad
1". Se observa que en la fila en que el cambio no afect la paridad es cero y llega sin
errores.
El paso final es evaluar los bits de paridad (recuerde que el fallo se encuentra en d7). El
valor entero que representan los bits de paridad es 11 (si no hubieran ocurrido errores este
valor seria 0), lo que significa que el bit dcimo primero de la palabra de datos (bits de
paridad incluidos) es el errneo y necesita ser cambiado.

p4

Binario

Decimal

p3

p2

p1

= 11

Cambiando el bit dcimo primero 10001100100 se obtiene de nuevo 10001100101.


Eliminando los bits de patrn de la paridad no se tienen en cuenta los bits de paridad. Si el
error se produjera en uno de ellos, en la comprobacin slo se detectara un error, justo el
correspondiente al bit de paridad causante del mismo.

Hamming Extendido

Finalmente, para detectar errores en 2 bits se utiliza un bit adicional de paridad (Hamming
Extendido) donde puede darse el caso de 3 probabilidades:
1.-' No hay error ->

Hamming =0, Paridad OK

2.- Un bit de error -> Paridad Fallo entonces


a) Hamming = 0, P = incorrecto, en este caso se cambia el valor del bit
de paridad.
b) Hamming <> 0, corrijo segn Hamming.
3.- Dos bit en error -> Paridad Ok, Hamming <> 0, por lo tanto informo,
NO corrijo.

Potrebbero piacerti anche