La información codificada está sujeta a posibles errores. En este contexto se entiende por error la modificación accidental de la información, sin la intervención directa o indirecta de ninguna persona.
Por ejemplo, sería un error que el carácter ‘A’ almacenado en un disco se convirtiese en ‘Q’ “por las buenas”, pero no lo sería que ocurriese lo mismo por una equivocación en un programa o por una acción malintencionada de alguna persona.
¿Se puede modificar la información “porque sí”? Hay una serie de factores externos y difícilmente evitables que, eventualmente, pueden producir un error. Desde radiaciones alfa que pueden alterar el contenido de la memoria o de algún dispositivo de almacenamiento hasta campos magnéticos que pueden alterar la información transmitida a algún dispositivo externo o a través de una línea de comunicaciones.
El error se traduce en el cambio de algún bit de ‘0’ a ‘1’ o viceversa.
En principio, tal y como hemos considerado la representación de información hasta ahora, no es posible reconocer que se ha producido un error. Supongamos que tenemos codificado en C-2 (con ocho bits) el valor decimal ‘14’. Su representación sería ‘00001110’; si uno de los bits cambia accidentalmente de valor y el contenido de esos ocho bits pasa a ser, por ejemplo, ‘00011110’, representará el valor ‘30’, tan válido, desde el punto de vista de codificación, como el anterior.
Estos errores son infrecuentes pero, de acuerdo con la Ley de Murphy, se producen y es preciso protegerse contra ellos. Para la protección se emplean determinadas técnicas en la codificación de la información.
En primer lugar, existen códigos que son capaces de detectar que se ha producido un error, aunque no son capaces de saber dónde. Estos códigos pueden ser suficientes cuando el error se produce durante una transmisión: basta con repetirla, ya que la información se mantiene correcta en el punto de origen.
Pero cuando el error se produce en la información almacenada, cuando se altera el contenido de un disco o de la memoria, no hay posibilidad de recuperar la información. Saber que se ha producido un error es algo, pero no suficiente. Para estos casos se emplean códigos con capacidad de corrección de errores; si, por ejemplo, la letra ‘A’ se cambia accidentalmente por la ‘Q’, el código debe ser capaz de reconocer que se ha producido un error y además, debe ser capaz de restituir la representación al valor correspondiente a la letra ‘A’. Son códigos con capacidad de corrección de errores o, códigos autocorrectores.