ASCII (de l'anglès American Standard Code for Information Interchange) és un codi estàndard estatunidenc per a l'intercanvi d'informació. L'ASCII és un joc de caràcters que assigna valors numèrics (del 0 al 127, 7 bits de longitud) a les lletres, xifres i signes de puntuació. Existeixen codis ASCII extensos de 256 caràcters (del 0 al 255, un byte), que permeten representar caràcters no anglesos com poden ser accents o la «ç». Els caràcters de la part superior (127 a 255), varien d'un estàndard tècnic a un altre, encara que el més utilitzat és el Latin-1 o ISO-8859-1.
El codi ASCII utilitza 7 bits per representar els caràcters, encara que inicialment emprava un bit addicional (bit de paritat) que s'usava per detectar errors en la transmissió. Sovint s'anomena incorrectament ASCII a altres codis de caràcters de 8 bits com l'estàndard ISO-8859-1, que és una extensió que utilitza 8 bits per proporcionar caràcters addicionals usats en idiomes diferents a l'anglès, com el català.
ASCII va ser publicat com a estàndard per primera vegada en 1967 i va ser actualitzat per última vegada en 1986. En l'actualitat defineix codis per 33 caràcters no imprimibles, dels quals la majoria són caràcters de control obsolets que tenen efecte sobre com es processa el text, més altres 95 caràcters imprimibles que els segueixen en la numeració (començant pel caràcter espai).
Gairebé tots els sistemes informàtics actuals utilitzen el codi ASCII o una extensió compatible per representar textos i per al control de dispositius que treballen amb text.
Vista general Les computadores solament entenen nombres. El codi ASCII és una representació numèrica d'un caràcter com 'a' o '@'.Noms de Domini Internacionalitzats - Glossari, Internet Corporation for Assigned Names and Numbers (ICANN). Consultat el 19-11-2008
Com altres codis de format de representació de caràcters, l'ASCII és un mètode per a una correspondència entre cadenes de bits i una sèrie de símbols (alfanumèrics i uns altres), permetent d'aquesta forma la comunicació entre dispositius digitals així com el seu processat i emmagatzematge. El codi de caràcters ASCII o una extensió compatible s'usa gairebé en tots els ordinadors, especialment amb ordinadors personals i estacions de treball. El nom més apropiat per a aquest codi de caràcters és "US-ASCII".Internet Assigned Numbers Authority (28 de gener de 2005). "Codis de caràcters". Accedit el 7 d'agost de 2005.
! " # $ % & ' () * +, -. / 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 O 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 o v w x y z { | }
ASCII és, en sentit estricte, un codi de set bits, la qual cosa significa que usa cadenes de bits representables amb set dígits binaris (que van de 0 a 127 en base decimal) per representar informació de caràcters. En el moment en el qual es va introduir el codi ASCII molts ordinadors treballaven amb grups de vuit bits (bytes o octets), com la unitat mínima d'informació; on el vuitè bit s'usava habitualment com bit de paritat amb funcions de control d'errors en línies de comunicació o altres funcions específiques del dispositiu. Les màquines que no usaven la comprovació de paritat assignaven al vuitè bit el valor zero en la majoria dels casos, encara que altres sistemes com les computadores Prime, que executaven PRIMOS posaven el vuitè bit del codi ASCII a 1.
El codi ASCII defineix una relació entre caràcters específics i seqüències de bits; a més de reservar uns quants codis de control per al processador de textos, i no defineix cap mecanisme per descriure l'estructura o l'aparença del text en un document; aquests assumptes estan especificats per altres llenguatges com els llenguatges d'etiquetes.
Història El codi ASCII es va desenvolupar en l'àmbit de la telegrafia, i es va usar per primera vegada comercialment com un codi de teleimpressió impulsat pels serveis de dades de Bell. Bell havia planejat usar un codi de sis bits, derivat de Fieldata, que afegia puntuació i lletres minúscules al més antic codi de teleimpressió Baudot, però se'ls va convèncer perquè s'unissin al subcomité de l'Agència d'Estàndards Nord-americà (American Standards Association, A.S.A.), que havien començat a desenvolupar el codi ASCII. Baudot va ajudar en l'automatització de l'enviament i recepció de missatges telegràfics, i va prendre moltes característiques del codi Morse; no obstant això, a diferència del codi Morse, Baudot va usar codis de longitud constant. Comparat amb els primers codis telegràfics, el codi proposat per Bell i A.S.A. va resultar en una reorganització més convenient per ordenar llistes (especialment perquè estava ordenat alfabèticament) i va afegir característiques com la 'seqüència de fuita'.
L'Agència d'Estàndards Nord-americà, que es convertiria més tard en l'Institut Nacional Nord-americà d'Estàndards (ANSI), va publicar per primera vegada el codi ASCII en 1963. L'ASCII publicat en 1963 tenia una fletxa apuntant cap amunt (?) en lloc del circumflex (^) i una fletxa apuntant cap a l'esquerra en lloc del guió baix (_). La versió de 1967 va afegir les lletres minúscules, va canviar els noms d'alguns codis de control i va canviar de lloc els dos codis de control ACK i ESC de la zona de lletres minúscules a la zona de codis de control.
ASCII va ser actualitzat en conseqüència i publicat com ANSI X3.4-1968, ANSI X3.4-1977, i finalment ANSI X3.4-1986.
Altres òrgans d'estandardització han publicat codis de caràcters que són idèntics a ASCII. Aquests codis de caràcters reben sovint el nom d'ASCII, a pesar que ASCII es defineix estrictament solament pels estàndards ASA/ANSI:
L'Associació Europea de Fabricants d'Ordinadors (ECMA) va publicar edicions del seu clon d'ASCII, ECMA-6 en 1965, 1967, 1970, 1973, 1983, i 1991. L'edició de 1991 és idèntica a ANSI X3.4-1986.ECMA International (desembre de 1991). Standard ECMA-6: 7-bit Coded Character Set, 6th edition Accedit el 17 de desembre de 2005. L'Organització Internacional d'Estandardització (ISO) va publicar la seva versió, ISO 646 (més tard ISO/IEC 646) en 1967, 1972, 1983 i 1991. En particular, ISO 646:1972 va establir un conjunt de versions específiques per a cada país on els caràcters de puntuació van ser reemplaçats amb caràcters no anglesos. ISO/IEC 646:1991 La International Reference Version és la mateixa que en l'ANSI X3.4-1986. La Unió Internacional de Telecomunicacions (ITU) va publicar la seva versió d'ANSI X3.4-1986, Recomanació ITU T.50, en 1992. A principis de la dècada de 1970 va publicar una versió com a Recomanació CCITT V.3. Deutsches Institut für Normung va publicar una versió d'ASCII com l'estàndard DIN 66003 en 1974. El Grup de Treball en Enginyeria d'Internet (IETF) va publicar una versió en 1969 com , i va establir la versió estàndard per a Internet, basada en ANSI X3.4-1986, amb la publicació de en 1992. La versió d'IBM d'ANSI X3.4-1986 es va publicar en la literatura tècnica d'IBM com pàgina de codis 367.
El codi ASCII també està inclòs en el seu probable relleu, Unicode, constituint els primers 128 caràcters (o els 'més baixos'). Alguns observadors consideren el codi ASCII l'estàndard de programari més reeixit que mai s'hagi promulgat.
Els caràcters de control ASCII El codi ASCII reserva els primers 32 codis (numerats del 0 al 31 en decimal) per a caràcters de control: codis no pensats originalment per representar informació imprimible, sinó per controlar dispositius (com impressores) que usaven ASCII. Per exemple, el caràcter 10 representa la funció "nova línia" (line feed), que fa que una impressora avanci el paper, i el caràcter 27 representa la tecla d'"escapada" (ESC) que sovint es troba en la cantonada superior esquerra dels teclats comuns.
El codi 127 (els set bits a un), un altre caràcter especial, equival a "suprimir" ("delete"). Encara que aquesta funció s'assembla a altres caràcters de control, els dissenyadors d'ASCII van idear aquest codi per poder "esborrar" una secció de paper perforat (un mitjà d'emmagatzematge popular fins a la dècada de 1980) mitjançant la perforació de tots els forats possibles d'una posició de caràcter concreta, reemplaçant qualsevol informació prèvia. Atès que el codi 0 era ignorat, va ser possible deixar buits (regions de forats) i més tard fer correccions.
Molts dels caràcters de control ASCII servien per marcar paquets de dades, o per controlar protocols de transmissió de dades (per exemple ENQuiry, amb el significat: hi ha alguna estació per aquí?, ACKnowledge: rebut o "justificant de recepció", Negative AcKnowledge: No rebut, Start Of Header: inici de capçalera, Start of TeXt: inici de text, End of TeXt: final de text, etc.). Fuita i SUBstitute permetien a un protocol de comunicacions, per exemple, marcar dades binàries perquè continguessin codis amb el mateix codi que el caràcter de protocol, i que el receptor pogués interpretar-los com a dades en lloc de com a caràcters propis del protocol.
Els dissenyadors del codi ASCII van idear els caràcters de separació per al seu ús en sistemes de cintes magnètiques.
Dos dels caràcters de control de dispositius, comunament anomenats XON i XOFF generalment exercien funcions de caràcters de control de flux per controlar el flux a cap a un dispositiu lent (com una impressora) des d'un dispositiu ràpid (com un ordinador), de manera que les dades no saturessin la capacitat de recepció del dispositiu lent i es perdessin.
Els primers usuaris d'ASCII van adoptar alguns dels codis de control per representar "metainformació" com a final-de-línia, principi/final d'un element de dades, etc. Aquestes assignacions sovint obstaculitzen en conflicte, de manera que parteix de l'esforç de convertir dades d'un format a un altre comporta fer les conversions correctes de metainformació. Per exemple, el caràcter que representa el final-de-línia en fitxers de text varia amb el sistema operatiu. Quan es copien arxius d'un sistema a un altre, el sistema de conversió ha de reconèixer aquests caràcters com a marques de final-de-línia i actuar en conseqüència.
Actualment els usuaris d'ASCII usen menys els caràcters de control, (amb algunes excepcions com la "tornada de carro" o "nova línia"). Els llenguatges moderns d'etiquetes, els protocols moderns de comunicació, el pas de dispositius basats en text a basats en gràfics, el declivi de les teleimpressores, les targetes perforades i els papers continus han deixat obsoleta la majoria de caràcters de control.
BinariDecimalHexAbreviaturaReprATNom/Significat0000 0000000NUL?^@Caràcter Nul0000 0001101SOH?Inici encapçalament0000 0010202STX?^BInici de Text0000 0011303ETX?^CFi de Text0000 0100404EOT?^DFi de Transmissió0000 0101505ENQ?^IConsulta0000 0110606ACK?^FReconeixement0000 0111707BEL?^GTimbre0000 1000808BS?^HRetrocés0000 1001909HT?^ITabulació horitzontal0000 1010100A LF?^JLine feed (Salt de línia)0000 1011110BVT?^KTabulació Vertical0000 1100120CFF?^LAvançament (nova) pàgina0000 1101130DCR?^MRetorn de carro (enter)0000 1110140ESOTA?^NDesplaçament cap a fora0000 1111150FSI?^ODesplaçament cap a dins0001 00001610DLE?^PEscriptura vinculació dades0001 00011711DC1?^QControl dispositiu 10001 00101812DC2?^RControl dispositiu 20001 00111913DC3?^SControl dispositiu 30001 01002014DC4?^TControl dispositiu 40001 01012115NAK?^OConfiguració negativa0001 01102216SYN?^VInactivitat0001 01112317ETB?^WFi bloc de transmissió0001 10002418CA?^XCancel·lar0001 10012519EM?^IFi del medi0001 1010261ASUB?^ZSubstitució0001 1011271BESC?^[ or ESCEscapament0001 1100281CFS?^\Separar fitxer0001 1101291DGS?^]Separació de grup0001 1110301ERS?^^Separació de registre0001 1111311FUS?^_Separació d'unitats0111 11111277FDE EL?^?, Delete, or BackspaceDelete
Caràcters imprimibles ASCII El codi del caràcter espai, designa a l'espai entre paraules, i es produeix normalment per la barra espaciadora d'un teclat. Els codis del 32 al 126 es coneixen com a caràcters imprimibles, i representen lletres, dígits, signes de puntuació i diversos símbols.