Codificación ASCII



Para representar texto, las computadoras utilizan la codificación de caracteres ASCII.
Los textos en informática son conocidos como string o cadena, un texto está formado por varios caracteres en secuencia. Para representar un texto se escribe entre comillas, mientras que para representar un carácter se utiliza la comilla simple.

“Hola desde ChibiSistemas” es un texto que consta de 24 caracteres.
“123” es un texto que consta de 3 caracteres
‘A’ es un carácter.
‘1’ es un carácter.

Si NO se escriben comillas, se toma como un número entero Int.

1 sin comillas es el número entero 1, más NO un carácter.


¿Cómo funciona la codificación ASCII?


Se representan 255 símbolos utilizando un byte (8 bits) donde cada combinación es equivalente a un símbolo o carácter ASCII.

En esta Web podrás encontrar más detallado cada código ASCII. http://www.elcodigoascii.com.ar/
Esta imagen muestra los números entre 0 y 255 asignados a cada carácter.



ASCII de control: Se utilizan para indicar comandos, el número 13 es el equivalente a nueva línea o ‘\n’.

ASCII imprimible: Son los caracteres que se pueden imprimir o mostrar en pantalla, incluyendo el espacio ‘ ‘, ‘ A ’, ’ 1 ’.

ASCII extendido: Son caracteres especiales fuera del alfabeto inglés, como la ‘ á ’ o la ‘ ñ ‘.

Ejemplo: Imprimir un carácter en C++ (o cualquier otro lenguaje).

int numero1 = 65;

char numero2 = ‘A’;

int numero3 = 66;

char numero4 = numero3; //Asignamos el valor entero en la variable char

Si imprimimos las anteriores variables obtendríamos:


numero1 : 65
numero2: A
numero3: 66
numero4 = B


Una variable char puede contener explícitamente el carácter que introduzcamos, o podemos asignarle el numero entero ASCII correspondiente, por ejemplo.
Si queremos introducir el carácter ‘G’ en la variable char podemos hacerlo de los siguientes modos:

char letra = ‘G’; //introducimos carácter en comillas simples

char letra = 71; //introducimos el código numérico ASCII

Si imprimimos, en ambos casos obtendremos por resultado ‘G’.


¿De qué sirve saber el número que representa a cada carácter?

Para muchos casos. Por ejemplo:

Digamos que queremos convertir el numero 13 a Hexadecimal, fácilmente podríamos aplicar lo siguiente

char letra;

if (numero == 13) letra = ‘D’;

Pero si quisiéramos aplicar la conversión para los demás números, la Z representa el número 35 en base 36, por lo tanto, seria tedioso escribir 27 veces el código anterior para cada letra.

char letra;

if(numero == 10) letra = ‘A’

if(numero == 11) letra = ‘B’
. . .
. . .
if(numero == 35) letra = ‘Z’


¿Cómo solucionamos esto utilizando el código ASCII?

Si el número >= 10, sabemos que se representa utilizando una letra, además,
conocemos que la letra A = 65 ASCII, entonces lo ideal es sumarle 55 al número y convertirlo en char.

10+55= 65 y 65 = 'A'

Si el número se encuentra entre 0 y 9, lo anterior nos daría problemas, porque si el número fuera 9:

9+55= 64 y el carácter ASCII para 64 = @.

Lo mejor es, que si el número es menor a 10, sumemos 48 ¿Por qué? porque ‘0’ = 48 ASCII.
Si tenemos el número 5:

5+48 = 53  y el carácter ASCII para 53 = ‘5’.

El código para resolverlo sería el siguiente:

char letra;

int numero = 14; //número mayor a 10

if (numero < 10) numero += 48; //no es menor a 10

else numero += 55; //como es mayor a 10 sumamos 55, 14+55 = 69

letra = numero; // es como decir letra = 69 y el 69 = ‘E’ ASCII


Happy Coding!

No hay comentarios.