Sugiero que antes de comenzar a leer el presente artículo hayan leído Compresión de archívos pues el presente es una continuación del anterior en la idea que se va a desarrollar. Aunque para comprender este método no necesiten conocer otro.
El método que se expuso en el artículo anterior, se trató de un artificio que supone que una palabra se pueda representar con un número, pero es mejor leer el artículo completo.
En este caso me voy a referir al método más difundido.
Cada una de las letras con las que se escribe este artículo está representado en un set de caracteres llamados ASCII, y dentro del set lo que hay son números decimales.
Por ejemplo el número 128, representa la letra C con cejilla: Ç, para confirmar esto, presione la tecla Alt izquierda del teclado y el número 128 con el pad numérico de la derecha de su teclado, no funciona con los números de arriba del teclado.
Lo números se representan con caracteres. La forma de representación de esos caracteres se llaman la “base” de representación del número. El número 128, con base decimal de representación quiere decir que dispone de 10 caracteres: 0,1,2,3,4,5,6,7,8,9 para poder representarse y para ello se están usando 3 espacios: espacio para el 1, otro para el 2, otro para el 8.
El valor de esa representación es que el primero se lee de derecha a izquierda:
1 2 8 el número es: 128 <---- esa es la "forma" o grafía que representa el número
102 101 100
100 10 1 lo que equivale a 100x1+10x2+1x8=128
Note que es importante la posición de los números, el 1, debe estar en el tercer lugar comenzando la cuenta desde la derecha para que valga 100.
Ese mismo número representado en base binaria, es decir en ceros y unos, los caracteres a utilizar serían: 0 y 1.
1 0 0 0 0 0 0 0 el número es: 10000000 <--- esa es la forma gráfica de representación
27 26 25 24 23 22 21 20 <---- valor del número en decimal
128 64 32 16 8 4 2 1 <---- valor convertido en decimal
128x1+64x0+32x0+16x0+8x0+4x0+2x0+1x0= 128 <--- prueba de que da 128
Es decir el 128 en la base binaría se escribe: 10000000
Cuando para la base decimal utiliza 3 espacios, para la base binaria utilizo 8 espacios.
Veamos qué hace falta para una base trinaria: los caracteres a utilizar son: 0, 1 y 2
1 1 2 0 2 el número es: 11202 <--- forma de representación del número
34 33 32 31 30 <--- valor del número en decimal
81 27 9 3 1 <--- valor calculado
81x1+27x1+2x9+2x1= 128 <--- valor de la conversión del número.
En otras palabras el número 128 en decimal se vería asi: 11202 en una base numérica trinaria.
Vemos que con un carácter más, necesitaríamos 5 espacios para representar el número 128, con esto quiero advertir que la relación no es lineal, a más caracteres en la representación del número no es menos en las posiciones necesarias de forma lineal.
Recién con los diez caracteres de la base decimal disponemos de las 3 posiciones necesarias para representar un número del código ASCII que su vez significa la Ç.
Ahora imagine que tiene dieciséis caracteres: 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F
Bajo las mismas hipótesis, para representar el número 128 se requiere de dos espacios:
8 0 el número es: 80
161 160
16 1 equivale a: 16x8+1x0= 128
El número 128 en base decimal se representa: 80 en base hexadecimal, de este modo para cualquier texto que haya necesitado 128 caracterteres, se podría reducir a dos tercios del peso si se cambia la base del número de representación.
Y esta es la idea con que se pueden comprimir archivos, sólo pasando de una base numérica a otra, como de pasar de la base 10 a una base 16, ya se podría representar el código ASCII, con las dos terceras partes de los espacios necesarios.
Ahora lo que hace falta es un algoritmo de traslación de los datos de una base a la otra. Por esta utilidad, estos algoritmos son realizados directamente por los chips, a velocidades muy superiores a las velocidades normales de operaciones, que se realizan con chisp usuales, los Intel, los AMD, son chips que incluyen un co-procesador que se ocupa de las operaciones matemáticas y las realizan en el orden de 3 a 6 ceros en velocidad superior a la del chip de procesamiento.
De manera que ahora comprenderán por qué son interesantes procesadores que administren algoritmos con 64 bit, pues permiten una administración de importante volumen de información y puede realizar compresiones con base de 64 caracteres en los números.
Esta es la manera en que se pueden comprimir archivos, y es la base teórica que utilizan compresores como los .zip o .rar o incluso tipos de archivos como los de sonido o video, en donde la calidad y alcance de compresión se debe a la calidad y alcance de los algoritmos que permiten trasladar la información de una base numérica a la otra.
No hay que confundir los procesos de compresión de archivos con el proceso de compilación, éste último será tratado en otro artículo.
Se admiten sugerencias sobre cómo aclarar mejor estos los procesos.
Ana Abregú.