2011-05-01 23 views
9

En Java, ¿cuál es el número máximo en la parte de la mantisa que se puede almacenar?¿Cuál es el número máximo en la parte de mantisa de un flotante Java?

En este enlace http://steve.hollasch.net/cgindex/coding/ieeefloat.html

      Sign  Exponent Fraction Bias 
Single Precision  1 [31]  8 [30-23] 23 [22-00] 127 

Qué significa que sólo podemos tener de 0 a 2^8 combinaciones almacenan?

+6

POR FAVOR NO GRITAR (Edite: he actualizado el título para detener los gritos.) –

+0

No sugiero que use flotador. el doble es casi tan rápido y no tiene el mismo error de limitación/ronda. –

Respuesta

2

La mantisa es de 23 bits en un float, pero el valor almacenado está normalizado, lo que significa que hay un 1 implícito seguido de un punto decimal. Esto lo lleva a 24 bits efectivos.

+0

... a excepción de números desnormalizados. – finnw

+0

¿Puedes explicar lo que está normalizado? si dices 24 bits, entonces podemos representar 2^24 números en la parte de la mantisa? – user733434

+0

@ user733434: "... lo que significa que hay una implícita 1 seguida de un punto decimal". Como @finnw dijo, hay números que no están normalizados, si el exponente es todo 0, pero la fracción no lo es. http://steve.hollasch.net/cgindex/coding/ieeefloat.html –

Cuestiones relacionadas