Desbordamiento aritmético

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

El término desbordamiento aritmético (también desbordamiento de punto flotante, o simplemente desbordamiento) es una condición en un programa de computadora donde el resultado de un El cálculo es un número de valor absoluto más preciso que el que la computadora realmente puede representar en la memoria de su unidad central de procesamiento (CPU).

El desbordamiento aritmético puede ocurrir cuando el verdadero resultado de una operación de punto flotante es menor en magnitud (es decir, más cercano a cero) que el valor más pequeño representable como un número de punto flotante normal en el tipo de datos de destino. El desbordamiento insuficiente puede considerarse en parte como un desbordamiento negativo del exponente del valor de coma flotante. Por ejemplo, si la parte del exponente puede representar valores de −128 a 127, entonces un resultado con un valor menor que −128 puede causar un desbordamiento insuficiente.

Para números enteros, el término "desbordamiento de enteros" normalmente se refiere a un tipo especial de desbordamiento de enteros o condición de envoltura de enteros mediante la cual el resultado de la resta daría como resultado un valor menor que el mínimo permitido para un tipo de entero determinado, es decir, el resultado ideal estaba más cerca del infinito negativo. que el valor representable del tipo de salida más cercano al infinito negativo.

Brecha de flujo inferior

El intervalo entre −fminN y fminN, donde fminN es el valor de punto flotante normal positivo más pequeño, se denomina espacio de subflujo. Esto se debe a que el tamaño de este intervalo es muchos órdenes de magnitud mayor que la distancia entre valores de punto flotante normales adyacentes justo fuera del espacio. Por ejemplo, si el tipo de datos de punto flotante puede representar 20 bits, el espacio de subdesbordamiento es 221 mayor que la distancia absoluta entre valores de punto flotante adyacentes justo fuera del espacio.

En diseños más antiguos, el espacio de flujo inferior tenía solo un valor utilizable: cero. Cuando se producía un desbordamiento insuficiente, el resultado verdadero se reemplazaba por cero (ya sea directamente por el hardware o por el software del sistema que manejaba la condición de desbordamiento primario). Este reemplazo se llama "flujo a cero".

La edición de 1984 de IEEE 754 introdujo números subnormales. Los números subnormales (incluido el cero) llenan el espacio de subdesbordamiento con valores donde la distancia absoluta entre valores adyacentes es la misma que para los valores adyacentes justo fuera del espacio de subdesbordamiento. Esto permite el "desbordamiento gradual", donde se utiliza el valor subnormal más cercano, del mismo modo que se utiliza el valor normal más cercano cuando es posible. Incluso cuando se utiliza un desbordamiento gradual, el valor más cercano puede ser cero.

La distancia absoluta entre los valores de punto flotante adyacentes justo fuera de la brecha se llama la máquina epsilon, típicamente caracterizada por el mayor valor cuya suma con el valor 1 resultará en la respuesta con el valor 1 en ese esquema de punto flotante. Esto puede ser escrito como , donde es una función que convierte el valor real en la representación de puntos flotantes. Aunque la epsilon de la máquina no debe confundirse con el nivel de subflujo (asumiendo números subnormales), está estrechamente relacionada. La máquina epsilon depende del número de bits que componen el significado, mientras que el nivel de flujo depende del número de dígitos que componen el campo exponente. En la mayoría de los sistemas de puntos flotantes, el nivel de subida es menor que el epsilón de la máquina.

Manejo del desbordamiento

La ocurrencia de un desbordamiento insuficiente puede establecer un bit de estado ("fijo"), generar una excepción, generar una interrupción a nivel de hardware o puede causar alguna combinación de estos efectos.

Como se especifica en IEEE 754, la condición de desbordamiento insuficiente solo se señala si también hay una pérdida de precisión. Normalmente, esto se determina porque el resultado final es inexacto. Sin embargo, si el usuario está atrapado en un desbordamiento inferior, esto puede suceder independientemente de la pérdida de precisión. El manejo predeterminado en IEEE 754 para el desbordamiento (así como otras excepciones) es registrar como estado de punto flotante que se ha producido un desbordamiento. Esto se especifica para el nivel de programación de aplicaciones, pero a menudo también se interpreta como cómo manejarlo a nivel de hardware.

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save