codigo ascii

28
CODIGO ASCII Para otros usos de este término, véase ASCII (desambiguación) . Hay 95 caracteres ASCII imprimibles, numerados del 32 al 126. ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. 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 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos 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). 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.

Upload: jonathan-h-aguilar

Post on 28-Sep-2015

34 views

Category:

Documents


0 download

DESCRIPTION

Codigos Ascii

TRANSCRIPT

CODIGO ASCIIPara 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 generalLas 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 ASCII[2] 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]! " # $% & ' ( ) * +, -. / 0 1 2 3 4 5 6 7 8 9:; < = >? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

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 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 letrasEl 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.4-1977, 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.4-1986. 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.4-1986, 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 ASCIIEl 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.

BinarioDecimalHexAbreviaturaReprATNombre/Significado

00000000000NUL^@Carcter Nulo

00000001101SOH^AInicio de Encabezado

00000010202STX^BInicio de Texto

00000011303ETX^CFin de Texto

00000100404EOT^DFin de Transmisin

00000101505ENQ^EConsulta

00000110606ACK^FAcuse de recibo

00000111707BEL^GTimbre

00001000808BS^HRetroceso

00001001909HT^ITabulacin horizontal

00001010100ALF^JSalto de lnea

00001011110BVT^KTabulacin Vertical

00001100120CFF^LDe avance

00001101130DCR^MRetorno de carro

00001110140ESO^NMaysculas fuera

00001111150FSI^OEn maysculas

000100001610DLE^PEnlace de datos / Escape

000100011711DC1^QDispositivo de control 1 oft. XON

000100101812DC2^RDispositivo de control 2

000100111913DC3^SDispositivo de control 3 oft. XOFF

000101002014DC4^TDispositivo de control 4

000101012115NAK^UConfirmacin negativa

000101102216SYN^VSncrono en espera

000101112317ETB^WFin de Transmision del Bloque

000110002418CAN^XCancelar

000110012519EM^YFinalizacin del Medio

00011010261ASUB^ZSubstituto

00011011271BESC^[ or ESCEscape

00011100281CFS^\Separador de fichero

00011101291DGS^]Separador de grupo

00011110301ERS^^Separador de registro

00011111311FUS^_Separador de unidad

011111111277FDEL^?, Delete o BackspaceEliminar

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 1001111UNEXPO

55H4EH45H58H50H4FH

Tabla 1.8. Cdigo ASCII.B6B5B4

B3B2B1B0BINHEX00000011010201131004101511061117

00000NULDLESP0@P`p

00011SOHDC1!1AQaq

00102STXDC2"2BRbr

00113ETXDC3#3CScs

01004EOTDC4$4DTdt

01015ENQNAK%5EUeu

01106ACKSYN&6FVfv

01117BELETB'7GWgw

10008BSCAN(8HXhx

10019HTEM)9IYiy

1010ALFSUB*:JZjz

1011BVTESC+;K[k{

1100CFFFS,N^n~

1111FSIUS/?O_oDEL

Cdigo biquinarioEl 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.ValorBits 05-01234

010-10000

110-01000

210-00100

310-00010

410-00001

501-10000

601-01000

701-00100

801-00010

901-00001

[editar] UNIVAC Solid StateEl 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.ValorBits p-5-421

01-0-000

10-0-001

20-0-010

31-0-011

40-0-100

50-1-000

61-1-001

71-1-010

80-1-011

91-1-100

[editar] LARCEl 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.ValorBits p-5-qqq

01-0-000

10-0-001

21-0-011

30-0-111

41-0-110

50-1-000

61-1-001

70-1-011

81-1-111

90-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:Decimal2 entre 5

123611000101001001010001

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

Decimalsuma2 entre 5

457893+13+26+16+23+60101000110010010010100011

Como ya hemos utilizado los dos bits posibles, no hace falta el bit de paridad, por lo que permanece a 0El 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.

Decimal2 entre 5

001100

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 8bit).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 HammingDe Wikipedia, la enciclopedia libreSaltar 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 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-HammingAntes 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.ParidadLa 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 cincoEn 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.RepeticinOtro 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 HammingSi 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.EjemploConsideremos 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.p1p2d1p3d2d3d4p4d5d6d7

Palabra de datos (sin paridad):0110101

p1101011

p2001001

p30110

p40101

Palabra de datos (con paridad):10001100101

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 erroresp1p2d1p3d2d3d4p4d5d6d7Prueba de paridadBit de paridad

Palabra de datos recibida:100011001011

p1101011Correcto0

p2001001Correcto0

p30110Correcto0

p40101Correcto0

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

Con erroresp1p2d1p3d2d3d4p4d5d6d7Prueba de paridadBit de paridad

Palabra de datos recibida:100011001001

p1101010Error1

p2001000Error1

p30110Correcto0

p40100Error1

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.p4p3p2p1

Binario1011

Decimal821 = 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 ExtendidoFinalmente, 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 entoncesa) 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.