El código informático puede considerarse el ADN del mundo digital: las líneas de datos sin procesar que componen todos los programas, archivos gráficos y música digital. Cuanto más grande y complejo sea el archivo o la aplicación, más código contiene. Dadas las limitaciones limitadas de los discos duros y otros tipos de almacenamiento de datos, la compresión de código se utiliza a menudo para reducir temporalmente el tamaño de los archivos. Funciona mediante el uso de algoritmos especiales para hacer que un fragmento de código más pequeño represente un fragmento más grande. Los datos se pueden comprimir y descomprimir de esta manera, siempre que un programa de compresión conozca el algoritmo correcto para desbloquearlos.
La mayoría de las personas que saben cómo usar una computadora tienen al menos una familiaridad pasajera con la forma en que se almacenan los datos, en términos de kilobytes, megabytes, gigabytes, etc. Lo que tal vez no entiendan es la relación entre estas unidades de medida y las palabras, gráficos, música y programas reales que manipulan en la pantalla. Un solo byte representa un solo carácter de texto, y en sí mismo está compuesto por ocho unidades más pequeñas conocidas como bits. Los bits son los componentes en bruto de la información digital, y la forma en que se organizan genera diferentes letras del alfabeto, números u otros tipos de caracteres.
Un programa de compresión de código toma los bits y bytes que componen un archivo dado y los codifica para que uno o dos caracteres de la versión comprimida representen un número mayor del original. Los dos tipos principales de compresión de código se conocen como con pérdida y sin pérdida. La compresión con pérdida se puede utilizar en casos en los que se acepta cierta pérdida de datos, como archivos de música en los que no se necesitan algunas frecuencias. Básicamente, un algoritmo con pérdida cuenta el número de veces que se reutiliza una sección determinada de datos en un archivo y genera una parte más pequeña de código que cuenta ese número. Por lo general, se puede lograr una compresión de mayor tamaño con este método, y el formato MP3 es un ejemplo de este tipo de archivo comprimido.
La diferencia funcional básica entre la compresión con pérdida y la compresión sin pérdida es que con la compresión con pérdida, los datos que no se pueden comprimir se descartan, mientras que la compresión sin pérdida los mantiene descomprimidos. Esto conduce a tamaños de archivo comprimidos más grandes, pero una retención de la calidad del archivo original. Los documentos de texto y otros archivos similares, en los que no se puede perder información, deben comprimirse de esta forma.
En términos generales, un archivo comprimido no se puede utilizar ni manipular a menos que primero se descomprima. La compresión es un estado temporal, por lo que se utiliza principalmente con fines de almacenamiento o transmisión. Sin embargo, esto no se extiende a los archivos de video y música comprimidos, para los cuales existen programas que pueden decodificar sobre la marcha, durante la reproducción.