ASCII

El código ASCII (American Standard Code for Information Interchange) es un código normalizado que está siendo muy aceptado por los fabricantes de computadoras. Este código ocupa ocho bits con los cuales se permite la representación de los números decimales (0-9), caracteres alfabéticos (letras minúsculas y mayúsculas), signos especiales (por ejemplo, *,+,=, etc.) y más de treinta órdenes o instrucciones de control (por ejemplo, comienzo de mensaje, final de mensaje, retorno de carro, cambio de línea, etc.)

La tabla muestra la representación de los números decimales, caracteres alfabéticos y algunos caracteres especiales en código ASCII. La numeración convenida para el código ASCII establece una secuencia de izquierda a derecha, de tal modo que la posición del bit 7 es la posición del bit de orden más elevado. Esta misma codificación puede emplearse para impresoras de alta velocidad, ciertos teletipos, etc.

donde

P es un bit de paridad.

Nota

Cuando se transmiten o almacenan datos binarios, frecuentemente se añade un bit adicional (denominado bit de paridad) el cual se utiliza en la detección de errores.

En los equipos de entrada/salida se utiliza el código de ocho niveles para representar los caracteres. Una vez introducidos en la computadora, los caracteres pueden ser tratados del modo más conveniente para las distintas operaciones. Por ejemplo, las cifras decimales no necesitan mantenerse en la computadora como palabras de ocho bits. Para las cifras 0-9 se han elegido, intencionadamente, los 4321 en coincidencia con la forma codificada BCD.

Al eliminar los bits 765X, la computadora solo necesita conservar los cuatro bits de la forma BCD para representar las cifras decimales. Si la longitud de la palabra normaliza es de ocho bits, como hemos indicado, la computadora puede procesar internamente las cifras decimales agrupando en una palabra los dos dígitos BCD de cuatro bits.

Por ejemplo, si deseamos agrupar en una palabra de ocho bits dos dígitos codificados en BCD. El número 29, que en las unidades de entrada/salida se representa como 01010010 01011001, puede reagruparse en la computadora en la forma

que forma una palabra de ocho bits con dos cifras decimales los diseñadores de computadoras han utilizado el término descriptivo «byte» a un grupo de 8 bits que pueden representar una palabra o algunos caracteres. La información se procesa por bytes en lugar de por bits, en el interior de una computadora. El byte de ocho bits (octeto) podría utilizarse para representar un carácter ASCII, al introducirlo en el computador o para representar dos cifras decimales en las operaciones aritméticas. De este modo las palabras pueden representarse mediante un número prefijado de bytes.

Nota

Un bit, por definición, es un digito binario y el cual puede tomar el valor de “0” o “1”.

Por estar íntimamente ligado al byte u octeto (y por consiguiente a los enteros que van del 0 al 127), el problema que presenta es que no puede codificar más que 128 símbolos diferentes (128 es el número total de diferentes configuraciones que se pueden conseguir con 7 dígitos binarios (0000000, 0000001,…, 1111111), usando el octavo dígito de cada octeto (como bit de paridad) para detectar algún error de transmisión).

Un cupo de 128 es suficiente para incluir mayúsculas y minúsculas del abecedario inglés, además de cifras, puntuación, y algunos «caracteres de control» (por ejemplo, uno que permite a una impresora que pase a la hoja siguiente), pero el ASCII no incluye ni los caracteres acentuados ni el comienzo de interrogación que se usa en castellano, ni tantos otros símbolos (matemáticos, letras griegas,…) que son necesarios en muchos contextos y por esto que se propuso el Código ASCII Extendido.

Debido a las limitaciones del ASCII se definieron varios códigos de caracteres de 6 u 8 bits entre ellos el código BCDIC (6 Bits) y el código ASCII Extendido. El código ASCII Extendido es un código de 8 bits que complementa la representación de caracteres faltantes del código ASCII estándar.

Sin embargo, el problema de estos códigos de 8 bits es que cada uno de ellos se define para un conjunto de lenguas con escrituras semejantes y por tanto no dan una solución unificada a la codificación de todas las lenguas del mundo. Es decir, no son suficientes 8 bits para codificar todos los alfabetos y escrituras del mundo, por lo tanto hay que buscar otros códigos de codificación más eficientes. Una posible solución al problema de la codificación de todas las lenguas del mundo es utilizar el código Unicode, como lo vamos describir en la siguiente sección.

Fuente: Apuntes de Arquitectura de computadoras de la FCA de la UNAM