¿Qué es un desbordamiento entero?
El desbordamiento entero se refiere al fenómeno que ocurre en ciertos tipos de datos de la computadora donde sus letreros cambian de positivo a negativo, o viceversa, cuando alcanzan los extremos de sus rangos aplicables. En los rangos de computadora, los tipos de datos enteros tienen rangos circulares, y cuando alcanzan un extremo de su rango, se mueven inmediatamente al otro extremo de su rango. Esto también se llama desbordamiento del entero.
Un entero firmado puede contener un rango de valores de -2
Este desbordamiento tiene consecuencias significativas durante la programación. Una matriz solo puede hAve tantos índices en él como lo permite el tipo entero, y los índices negativos no cuentan. Si un programador intenta crear una matriz más grande de lo que permite el tipo entero, pueden ocurrir errores de memoria significativos porque el desbordamiento entero daría como resultado un índice negativo. Esto es especialmente peligroso en los idiomas que no tienen límites explícitos.
Cuando se produce el desbordamiento del entero, pueden ocurrir tipos relacionados de desbordamiento, como el desbordamiento del búfer, el desbordamiento del montón y el desbordamiento del búfer de pila. En todos estos casos, el desbordamiento de enteros actúa para abrumar las estructuras de memoria con más datos de los que esas estructuras pueden mantener. Estos desbordamientos, en programas simples, a menudo no hacen mucho más que causar una lectura inválida o un error de escritura no válido. La manipulación de este problema por los piratas informáticos, sin embargo, puede diseñar errores de memoria que pueden causar problemas más graves.
En la mayoría de los programas simples, intEger Overflow no es un problema importante. Los límites del tipo entero son lo suficientemente grandes como para que el problema del desbordamiento no entre en juego a menos que se manejen muchos datos a la vez. En algunos casos, se puede mitigar el desbordamiento, como en el caso de incrementar contadores, utilizando un tipo de datos más grande con un rango mayor. El tipo de datos más grande podría, en teoría, finalmente encontrar el mismo problema de desbordamiento, pero a medida que los rangos de tipo de datos se hacen más grandes, las posibilidades de hacerlo se hacen más pequeñas. El rango de cada tipo de datos enteros es al menos el doble del tamaño del siguiente más pequeño, por lo que hay un amplio espacio para datos adicionales.