49.    Desbordamiento [overflow] (concepto)

En general, se dice de las situaciones en que se intentan meter más datos en un contenedor de los que caben. Así es muy frecuente oir hablar de "buffer overflow" para indicar que no caben tantos datos en un buffer.

En aritmética se aplica cuando un valor excede el máximo previsto.

En números enteros el desbordamiento se puede producir por números excesivamente grandes, sean positivos o negativos. Java no lo detecta:

Integer.MAX_VALUE + 1 =
2147483647 + 1 = -2147483648

 

Integer.MIN_VALUE –1 =

-2147483648 – 1 = 2147483647

 

1000000000 * 10 = 1410065408

En números en coma flotante el desbordamiento se puede producir en el exponente cuando éste es positivo. Java lo interpreta como que nos hemos ido al infinito.

Double.MAX_VALUE * 10 =
1.79769e+308 * 10 = Infinity

Ver "Underflow".

Temas relacionados

Vademécum