¿Qué es un desbordamiento aritmético?
Un desbordamiento aritmético es una condición que ocurre en las computadoras, especialmente en el área de programación de computadoras, cuando un cálculo u operación produce un resultado que es demasiado grande para que el sistema de almacenamiento o registro lo pueda manejar. El desbordamiento también puede referirse a que 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 está restringido a computadoras personales o comerciales completas, ya que las calculadoras de mano simples y los dispositivos de comunicación también tienen límites a la magnitud de los valores que pueden manejar.
Los programadores tienden a aprender métodos para tratar los errores de desbordamiento aritmético al principio de su educación, ya que tienden a ser errores de programación muy comunes. Existen 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 use tipos y longitudes de datos consistentes y correctos no debería experimentar tales errores. Si se pone mucho cuidado en verificar el orden de las operaciones y mantener todo coherente, se pueden evitar por completo los errores de desbordamiento.
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 grandes cantidades 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 el 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 generalmente es inofensivo, puede dar resultados incorrectos y puede comprometer la utilidad y la eficiencia del programa.
El vuelo 501 de Ariane 5 ilustra claramente los peligros de los errores de desbordamiento aritmético. El vuelo fue la primera prueba del sistema de lanzamiento prescindible europeo Ariane 5, que reutilizó gran parte del código del antiguo sistema Ariane 4. Sin embargo, la aceleración del Ariane 5 fue significativamente mayor que la del Ariane 4, y la programación no fue adecuada para manejar los mayores valores necesarios. Como tal, el cohete dejó 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.