Codificación 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.
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!
Post a Comment