¿Qué es un desbordamiento aritmético?

Un desbordamiento aritmético es una condición que ocurre en las computadoras, especialmente en el área de la programación de computadoras, cuando un cálculo u operación arroja un resultado que es demasiado grande para que el sistema de almacenamiento o el registro lo maneje. El desbordamiento también puede referirse a la cantidad con el resultado dado excede la memoria designada para el almacenamiento. En algunos casos, el desbordamiento de datos puede almacenarse en otra ubicación de almacenamiento de datos; en otros, puede hacer que un programa se bloquee, se ejecute lentamente o produzca resultados inexactos. El desbordamiento aritmético no se limita a las computadoras personales o comerciales completas, ya que las calculadoras de mano y los dispositivos de comunicación simples también tienen límites en la magnitud de los valores que pueden manejar.

Los programadores tienden a aprender métodos para lidiar con errores de desbordamiento aritmético al principio de su educación, ya que tienden a ser errores de programación muy comunes. Hay muchos métodos diferentes para administrar el desbordamiento aritmético. El diseño del programa juega un papel muy importante; un programa bien diseñado que utiliza tipos y longitudes de datos consistentes y correctos no debería experimentar tales errores. Si se pone mucho cuidado en comprobar el orden de las operaciones y mantener todo coherente, los errores de desbordamiento se pueden evitar por completo.

Otra forma de lidiar con los errores de desbordamiento aritmético es dividir las operaciones en pasos más pequeños. A menudo, es más fácil para un sistema manejar operaciones simples y pequeñas que operaciones complejas que involucran números grandes y cálculos excesivos. Cuando no es extremadamente importante que el número devuelto sea completamente exacto, a veces será suficiente escribir el programa de tal manera que notifique al usuario del error de desbordamiento pero devuelva un valor de todos modos. La forma más común de manejar un error de desbordamiento aritmético es ignorarlo por completo. Si bien esto suele ser inofensivo, puede dar resultados incorrectos y comprometer la utilidad y eficiencia del programa.

El vuelo 5 de Ariane 501 ilustra claramente los peligros de los errores de desbordamiento aritmético. El vuelo fue la primera prueba del sistema de lanzamiento desechable europeo Ariane 5, que reutilizó gran parte del código del antiguo sistema Ariane 4. La aceleración del Ariane 5 fue, sin embargo, significativamente mayor que la del Ariane 4, y la programación no fue adecuada para manejar los mayores valores necesarios. Como tal, el cohete abandonó su trayectoria de vuelo prevista 37 segundos después del lanzamiento y tuvo que ser destruido. Este simple error de programación costó cientos de millones de dólares estadounidenses.