ASCII (pronunciado az-kee; ass-key en inglés americano) es un estándar que define una tabla de caracteres para ordenadores y otros equipos electrónicos. Su nombre proviene de American Standard Code for Information Interchange. Se diseñó en la década de 1960 a partir de códigos anteriores usados por sistemas telegráficos y se consolidó como la forma básica de representar texto en los primeros sistemas informáticos.

Formato y alcance

ASCII es originalmente un código de 7 bits que define 128 valores (0–127). Estos valores incluyen caracteres imprimibles —letras del alfabeto inglés, dígitos y signos de puntuación— y una serie de caracteres de control que no se imprimen pero afectan al procesamiento del texto (por ejemplo, iniciar una nueva línea). La mayoría de los caracteres imprimibles ocupan los códigos decimales del 32 al 126.

En muchos sistemas modernos, los valores ASCII se almacenan en bytes de 8 bits. En esos casos el octavo bit solía usarse para un bit de paridad o quedaba en cero; también se aprovecharon los valores de 128 a 255 para crear lo que se conoce como ASCII extendido (variantes de 8 bits que añaden letras con acentos y símbolos gráficos). Por eso es común encontrar referencias a “archivos ASCII” como sinónimo de texto plano.

Caracteres imprimibles y de control

  • Imprimibles: letras (a–z, A–Z), cifras (0–9), signos de puntuación y símbolos como ?, &, !.
  • Control: códigos no imprimibles usados para controlar dispositivos o el flujo de texto. Algunos ejemplos importantes:
    • NUL (0) — fin de cadena en muchos lenguajes y marcadores.
    • BEL (7) — sonido (campana).
    • BS (8) — retroceso (backspace).
    • HT (9) — tabulación horizontal (horizontal tab).
    • LF (10) — avance de línea (line feed, salto de línea).
    • CR (13) — retorno de carro (carriage return).
    • ESC (27) — carácter de escape.
    • DEL (127) — carácter de borrado.

Representación numérica y ejemplos

Cada carácter ASCII tiene un número asociado que puede expresarse en decimal, en hexadecimal o en binario. Por ejemplo, la letra mayúscula A corresponde al valor decimal 65. En binario de 7 bits es 1000001; si se representa en un byte de 8 bits suele escribirse como 01000001. En hexadecimal su código es 0x41.

Otros ejemplos comunes:

  • B: decimal 66, hexadecimal 0x42, binario 01000010.
  • C: decimal 67, hexadecimal 0x43, binario 01000011.
  • a: decimal 97, hexadecimal 0x61, binario 01100001.
  • espacio: decimal 32, hexadecimal 0x20, binario 00100000.

ASCII extendido y relación con Unicode

Con el tiempo surgieron muchas extensiones de 8 bits (valores 128–255) para soportar caracteres acentuados y símbolos gráficos en distintos idiomas. Estas variantes no eran compatibles entre sí de forma universal, lo que motivó el desarrollo de estándares más completos como Unicode. Hoy, la codificación UTF-8 de Unicode es la más usada: es compatible hacia atrás con ASCII, es decir, los valores ASCII (0–127) se representan en UTF-8 exactamente igual.

Usos y legado

ASCII sigue siendo fundamental en informática: los protocolos de internet, los formatos de texto simples, los encabezados de correos y muchos sistemas heredados utilizan todavía los primeros 128 códigos. Además, ASCII dio origen a prácticas como el arte ASCII (dibujos formados con caracteres) y sigue siendo una referencia útil para entender cómo se codifica el texto en niveles bajos.

Notas sobre comunicaciones

En comunicaciones serie y con módems antiguos, el uso de un bit de paridad dentro de cada byte enviado ayudaba a detectar errores provocados por líneas ruidosas. Hoy en día, con enlaces más fiables y métodos de detección/corrección de errores más avanzados, la paridad es menos usada, pero forma parte de la historia práctica de ASCII en interfaces ruidosas.