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 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.
El código ASCII se desarrolló en el ámbito de la telegrafía y se usó por primera vez comercialmente como un código de teleimpresión impulsado por los servicios de datos de Bell. Bell había planeado usar un código de seis bits, derivado de Fieldata, que añadía puntuación y letras minúsculas al más antiguo código de teleimpresión Baudot, pero se les convenció para que se unieran al subcomité de la Agencia de Estándares Estadounidense (ASA), que habían empezado a desarrollar el código ASCII. Baudot ayudó en la automatización del envío y recepción de mensajes telegráficos, y tomó muchas características del código Morse; sin embargo, a diferencia del código Morse, Baudot usó códigos de longitud constante. Comparado con los primeros códigos telegráficos, el código propuesto por Bell y ASA resultó en una reorganización más conveniente para ordenar listas (especialmente porque estaba ordenado alfabéticamente) y añadió características como la 'secuencia de escape'.
La Agencia de Estándares Estadounidense (ASA), que se convertiría más tarde en el Instituto Nacional Estadounidense de Estándares (ANSI), publicó por primera vez el código ASCII en 1963. El ASCII publicado en 1963 tenía una flecha apuntando hacia arriba (↑) en lugar del circunflejo (^) y una flecha apuntando hacia la izquierda en lugar del guion bajo (_). La versión de 1967 añadió las letras minúsculas, cambió los nombres de algunos códigos de control y cambió de lugar los dos códigos de control ACK y ESC de la zona de letras minúsculas a la zona de códigos 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 estandarización han publicado códigos de caracteres que son idénticos a ASCII. Estos códigos de caracteres reciben a menudo el nombre de ASCII, a pesar de que ASCII se define estrictamente solamente por los estándares ASA/ANSI:
- La Asociación Europea de Fabricantes de Ordenadores (ECMA) publicó ediciones de su clon de ASCII, ECMA-6 en 1965, 1967, 1970, 1973, 1983, y 1991. La edición de 1991 es idéntica a ANSI X3.4-1986.[4]
- La Organización Internacional de Estandarización (ISO) publicó su versión, ISO 646 (más tarde ISO/IEC 646) en 1967, 1972, 1983 y 1991. En particular, ISO 646:1972 estableció un conjunto de versiones específicas para cada país donde los caracteres de puntuación 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 Unión Internacional de Telecomunicaciones (ITU) publicó su versión de ANSI X3.4-1986, Recomendación ITU T.50, en 1992. A principios de la década de 1970 publicó una versión como Recomendación CCITT V.3.
- DIN publicó una versión de ASCII como el estándar DIN 66003 en 1974.
- El Grupo de Trabajo en Ingeniería de Internet (IETF) publicó una versión en 1969 como RFC 20, y estableció la versión estándar para Internet, basada en ANSI X3.4-1986, con la publicación de RFC 1345 en 1992.
- La versión de IBM de ANSI X3.4-1986 se publicó en la literatura técnica de IBM como página de códigos 367.
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 |
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 | ␡ | ^?, Delete o Backspace | Eliminar |
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 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 XOFF generalmente ejercían funciones de caracteres de control de flujo para controlar el flujo a hacia un dispositivo lento (como una impresora) desde un dispositivo rápido (como un ordenador), 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.
No hay comentarios:
Publicar un comentario