Saltar al contenido
Electrónica Online

ASCII (Código Estándar Americano para el Intercambio de Información)

ASCII que es

¿Qué es ASCII?

ASCII (American Standard Code for Information Interchange) es el formato de codificación de caracteres más común para datos de texto en computadoras y en Internet. En los datos codificados con ASCII estándar, hay valores únicos para 128 caracteres alfabéticos, numéricos o especiales adicionales y códigos de control.

La codificación ASCII se basa en la codificación de caracteres utilizada para los datos telegráficos. El American National Standards Institute la publicó por primera vez como norma informática en 1963.

Los caracteres de la codificación ASCII incluyen las letras mayúsculas y minúsculas de la A a la Z, los números del 0 al 9 y los símbolos básicos de puntuación. También utiliza algunos caracteres de control no imprimibles que originalmente estaban pensados para su uso con terminales de impresión de teletipos.

Los caracteres ASCII pueden representarse de las siguientes formas:

  • como pares de dígitos hexadecimales — números de base 16, representados del 0 al 9 y de la A a la F para los valores decimales del 10 al 15;
  • como números octales (base 8) de tres dígitos;
  • como números decimales del 0 al 127; o
  • en binario de 7 u 8 bits

Por ejemplo, la codificación ASCII de la letra «m» minúscula se representa de las siguientes maneras:

CarácterHexadecimalOctalDecimalBinario (7 bits)Binario (8 bits)
m0x6D/155109110 11010110 1101

Inicialmente, los caracteres ASCII se codificaban en 7 bits y se almacenaban como caracteres de 8 bits con el bit más significativo (normalmente, el bit situado más a la izquierda) a 0.

¿Por qué es importante ASCII?

ASCII fue el primer gran estándar de codificación de caracteres para el procesamiento de datos. La mayoría de los sistemas informáticos modernos utilizan Unicode, también conocido como Unicode Worldwide Character Standard. Es un estándar de codificación de caracteres que incluye codificaciones ASCII.

La Internet Engineering Task Force (IETF) adoptó ASCII como estándar para los datos de Internet cuando publicó «ASCII format for Network Interchange» como RFC 20 en 1969. Ese documento de solicitud de comentarios (RFC) estandarizó el uso de ASCII para los datos de Internet y fue aceptado como estándar completo en 2015.

La codificación ASCII está técnicamente obsoleta, ya que ha sido sustituida por Unicode. Sin embargo, los caracteres ASCII utilizan la misma codificación que los 128 primeros caracteres del Formato de Transformación Unicode 8, por lo que el texto ASCII es compatible con UTF-8.

En 2003, el IETF estandarizó el uso de la codificación UTF-8 para todo el contenido web en el RFC 3629.

En la actualidad, casi todas las computadoras utilizan la codificación ASCII o Unicode. Las excepciones son algunos mainframes de IBM que utilizan el código propietario de 8 bits llamado Código de Intercambio Decimal Codificado Binario Extendido (EBCDIC).

¿Cómo funciona ASCII?

ASCII ofrece un conjunto de caracteres universalmente aceptado y comprendido para las comunicaciones básicas de datos. Permite a los desarrolladores diseñar interfaces comprensibles tanto para humanos como para computadoras. ASCII codifica una cadena de datos como caracteres ASCII que pueden interpretarse y mostrarse como texto plano legible para las personas y como datos para las computadoras.

Los programadores utilizan el diseño del juego de caracteres ASCII para simplificar ciertas tareas. Por ejemplo, con los códigos de caracteres ASCII, cambiar un solo bit convierte fácilmente un texto de mayúsculas a minúsculas.

La letra mayúscula «A» se representa mediante el valor binario:

0100 0001

La letra «a» minúscula se representa mediante el valor binario:

0110 0001

La diferencia es el tercer bit más significativo. En decimal y hexadecimal, esto corresponde a:

CarácterBinarioDecimalHexadecimal
A0100 0001650x41
a0110 0001970x61

La diferencia entre mayúsculas y minúsculas es siempre 32 (0x20 en hexadecimal), por lo que la conversión de mayúsculas a minúsculas y viceversa es cuestión de sumar o restar 32 al código de caracteres ASCII.

Del mismo modo, los caracteres hexadecimales para los dígitos del 0 al 9 son los siguientes:

CarácterBinarioDecimalHexadecimal
00011 0000480x30
10011 0001490x31
20011 0010500x32
30011 0011510x33
40011 0100520x34
50011 0101530x35
60011 0110540x36
70011 0111550x37
80011 1000560x38
90011 1001570x39

Con esta codificación, los desarrolladores pueden convertir fácilmente los dígitos ASCII en valores numéricos eliminando los cuatro bits más significativos de los valores binarios ASCII (0011). Este cálculo también puede realizarse eliminando el primer dígito hexadecimal o restando 48 al código ASCII decimal.

Los desarrolladores también pueden comprobar el bit más significativo de los caracteres de una secuencia para verificar que un flujo de datos, cadena o archivo contiene valores ASCII. El bit más significativo de los caracteres ASCII básicos siempre será 0; si ese bit es 1, entonces el carácter no es un carácter codificado ASCII.

Variantes de ASCII y Unicode

Cuando se introdujo por primera vez, ASCII sólo admitía texto en inglés. Cuando los ordenadores de 8 bits se generalizaron en los años 70, los proveedores y organismos de normalización empezaron a ampliar el conjunto de caracteres ASCII para incluir 128 valores de caracteres adicionales. El ASCII ampliado incorpora caracteres no ingleses, pero sigue siendo insuficiente para la codificación completa de texto en la mayoría de idiomas del mundo, incluido el inglés. Son habituales distintos conjuntos de caracteres ASCII ampliados, según el proveedor, el idioma y el país.

Inicialmente, se adoptaron otras normas de codificación de caracteres para otras lenguas. En algunos casos, los estándares se diseñaron para otros países con requisitos diferentes. En otros casos, las codificaciones eran diseños propios de los fabricantes de hardware.

Unicode define espacios de código para la implementación de codificaciones de caracteres para diferentes idiomas. Los caracteres pueden asignarse a codificaciones utilizando uno de los dos métodos siguientes:

  1. UTF
  2. Universal Coded Character Set (UCS)

Dependiendo del idioma y de la asignación utilizada, los caracteres pueden expresarse en uno o cuatro bytes de 8 bits (UTF-8), en dos unidades de 16 bits (UTF-16) o en una sola unidad de 32 bits (UTF-32).

La norma UCS se mantiene como norma ISO (Organización Internacional de Normalización), ISO/IEC 10646. En el momento de redactar este documento, hay 143.859 caracteres diferentes definidos en la versión 13.0 del estándar Unicode.

Ventajas y desventajas del ASCII

Tras más de medio siglo de uso, se conocen bien las ventajas y desventajas de utilizar la codificación de caracteres ASCII. Esa es una de las grandes fortalezas del formato de codificación.

Ventajas

  • Universalmente aceptada. La codificación de caracteres ASCII se entiende universalmente. A excepción de los mainframes de IBM que utilizan la codificación EBCDIC, está universalmente implementada en informática a través del estándar Unicode. La codificación de caracteres Unicode sustituye a la codificación ASCII, pero es compatible con ASCII.
  • Codificación de caracteres compacta. Los códigos estándar pueden expresarse en 7 bits. Esto significa que los datos que pueden expresarse en el conjunto de caracteres ASCII estándar sólo requieren tantos bytes para almacenar o enviar como el número de caracteres de los datos.
  • Eficaz para la programación. Los códigos de caracteres para letras y números se adaptan bien a las técnicas de programación para manipular texto y utilizar números para cálculos o almacenamiento como datos brutos.

Desventajas

  • Conjunto de caracteres limitado. Incluso con ASCII ampliado, sólo pueden representarse 255 caracteres distintos. Los caracteres de un set de caracteres estándar son suficientes para las comunicaciones en inglés. Pero incluso con los signos diacríticos y las letras griegas que admite el ASCII ampliado, es difícil dar cabida a idiomas que no utilizan el alfabeto latino.
  • Codificación de caracteres ineficiente. La codificación ASCII estándar es eficaz para la lengua inglesa y los datos numéricos. La representación de caracteres de otros alfabetos requiere una mayor sobrecarga, como los códigos de escape.

¿Te ha resultado útil esta información?

No
¡Gracias por tus comentarios!