Cómo se convierte el texto en números
Dijimos que las computadoras solo entienden números. Sin embargo, escribimos letras con el teclado y en la pantalla aparecen letras. En esta lección miramos por dentro cómo una máquina que solo conoce números maneja el texto.
Cada carácter tiene un número
El secreto es más sencillo de lo que parece.
Un grupo de personas se puso de acuerdo y asignó un número a cada carácter.
La A es el 65, la B es el 66, y así sucesivamente.
Por eso, cuando pulsas la A en el teclado, a la computadora no le llega una letra, sino el número 65.
Toca un carácter para ver su número.
Las mayúsculas de la A a la Z, las minúsculas, los dígitos y los símbolos tienen cada uno su número.
Este acuerdo que asigna números a los caracteres se llama ASCII.
Fue la primera tabla de caracteres que las computadoras usaron de forma generalizada.
El número vuelve a ser 0 y 1
Recuerda la lección anterior: la computadora también guarda los números como 0 y 1.
Así que el número 65 también se guarda, al final, como ocho interruptores encendidos o apagados.
Un carácter se convierte en ocho 0 y 1.
La A es el número 65, y ese número se convierte en ocho 0 y 1.
Por eso un carácter del inglés ocupa normalmente ocho interruptores, es decir, 1 byte.
Aquí aparece por primera vez la palabra para un grupo de ocho: el byte.
El texto también era 0 y 1 desde el principio.
Abrir la tabla de caracteres
Abajo puedes ver cómo es en realidad la tabla ASCII.
Los caracteres están ordenados por número, y cada uno lleva su número escrito al lado.
La A mayúscula es el 65, la a minúscula es el 97 y el dígito 0 es el 48.
Para la misma letra, el número de la minúscula es 32 más que el de la mayúscula.
Un detalle curioso: mayúsculas y minúsculas están separadas exactamente por 32.
La A es el 65 y la a es el 97.
No es casualidad. La tabla se diseñó así a propósito para que la computadora pudiera cambiar entre mayúsculas y minúsculas con facilidad.
Ocho interruptores no alcanzan
Con ocho interruptores se pueden mostrar 256 combinaciones.
Aunque metas el alfabeto inglés, los dígitos y los símbolos, todavía sobra espacio.
Como el acuerdo se hizo en el mundo angloparlante, al principio bastaba.
Del 0 al 255: 256 valores en total.
Pero en el mundo no solo se habla inglés.
El coreano tiene más de diez mil caracteres silábicos, y los caracteres chinos se cuentan por decenas de miles.
Si sumas los emojis, 256 no alcanza ni de lejos.
Así que hizo falta un acuerdo nuevo.
Los caracteres grandes usan más bytes
La solución es sencilla.
Si una casilla no alcanza, se usan varias.
En UTF-8, la codificación más común, el inglés sigue ocupando 1 byte, el coreano suele ocupar 3 bytes y un emoji ocupa 4 bytes.
Esta enorme tabla que da un número a cada carácter del mundo se llama Unicode.
Cada carácter ocupa una cantidad distinta de casillas.
Por eso un mismo carácter puede ocupar más o menos espacio.
Una letra del inglés ocupa una casilla; un carácter coreano, tres.
Esa es la razón de que la cantidad de caracteres que cuentas en un mensaje no coincida con la que cuenta la computadora.
Una frase también es una fila de números
Ahora veamos una línea corta completa.
Cada carácter se convierte en un número, y cada número vuelve a convertirse en 0 y 1.
Cada mensaje que enviamos es, por dentro, una larga fila de números como esta.
Hi, tal como lo ve la computadora.
Para mostrar texto en pantalla, el proceso va al revés.
La computadora lee los 0 y 1, deduce el número, busca en la tabla el carácter que corresponde a ese número y lo dibuja.
A nuestros ojos es texto, pero por dentro son números de principio a fin.