2010-01-27 16 views

Respuesta

13

Porque los números de coma flotante IEEE-754 tienen una representación para infinito, mientras que los enteros no.

En otras palabras, cada patrón de bits en int representa un número entero normal; valores de coma flotante son bastante más complicado con +/- infinito, "no es un número" valores (NAN), valores normalizados, valores subnormales etc.

+0

Si se aplicara la etiqueta 'floating-point' a cada pregunta sobre los números de punto flotante, ¡habría tenido otra insignia de oro! –

+0

Gracias señor. Ayudó mucho. – Mohit

0

También puede comprobar el JLS, que dice:

15.17.2 Operador de división
Por otro lado, si el valor del divisor en una división entera es 0, entonces se arroja una ArithmeticException .

El resultado de una división de punto flotante es determinado por la especificación de aritmética IEEE: Si el resultado no es NaN, el signo del resultado es positivo si ambos operandos tienen el mismo signo, negativo si los operandos tener diferentes signos
La división de un valor finito distinto de cero por cero da como resultado un infinito con signo. El signo está determinado por la regla establecida anteriormente.

+0

Gracias, señor. Ayudó mucho. – Mohit

3

From here

El estándar IEEE de punto flotante, el apoyo de casi todos los procesadores modernos, especifica que cada punto de operación aritmética flotante, incluyendo la división por cero, tiene un resultado bien definido. El estándar admite cero firmado, así como infinito y NaN (no un número). Hay dos ceros, +0 (cero positivo) y -0 (cero negativo) y esto elimina cualquier ambigüedad al dividir. En aritmética IEEE 754, ÷ +0 es infinito positivo cuando a es positivo, infinito negativo cuando a es negativo y NaN cuando a = ± 0. Los signos de infinito cambian cuando se divide por -0 en su lugar.

La división de enteros por cero generalmente se maneja de forma diferente a coma flotante ya que no hay una representación entera para el resultado. Algunos procesadores generan una excepción cuando se intenta dividir un entero por cero, aunque otros simplemente continuarán y generarán un resultado incorrecto para la división. El resultado depende de cómo se implemente la división, y puede ser cero o, a veces, el entero más grande posible.

+0

Gracias señor. Ayudó mucho. – Mohit

Cuestiones relacionadas