jueves, mayo 19, 2011

Cosas asombrosas de la programación. Segunda parte.

Siguiendo con las "cosas asombrosas" de la programación que veíamos hace un mes, hoy demostraremos que la suma de dos números positivos puede ser negativo.
Esto no es broma, un pequeño detalle como este hizo explotar todo un cohete como el Ariane.

Hacemos el pequeño programita en el C++ del Ubuntu:


Y el resultado:


La explicación:


La misma que hace un mes (ver primer enlace). Límite físico de almacenamiento en el tipo integer.

La solución:


Cada vez que hacemos una suma con enteros grandes tenemos que comparar el resultado con uno de los sumandos. Si el resultado es menor se ha producido el desbordamiento.

La tontería:


Teniendo en cuenta que con esta super crisis económica y financiera que sufrimos magnitudes como mil millones y similares son cada vez más frecuentes se ve claramente que el tipo integer de 4 bytes se ha quedado pequeñito.

Saludos,

1 comentario:

Anónimo dijo...

Jajaja deberias publicar curiosidades o errores "raros" que ocurren en la programacion