2010-01-01 13 views
10

¿Cuál es el equivalente de Java de seguir el código de C++?

Cómo reinterpretar los bits de un flotante como int

float f=12.5f; 
int& i = reinterpret_cast<int&>(f); 
+0

¿verificó si el código se ejecuta correctamente ?? debe ser 'int & i = r_c (f)' – SuperSaiyan

+3

No es realmente traducible a cualquier idioma. Está interpretando los bits del flotador como un int !!! Qué significa eso? Debido a que la representación de punto flotante no está definida por el estándar, solo tiene sentido si usted entiende qué representación de punto flotante usa su compilador/hardware aquí y sabe que esto se correlaciona con la representación de coma flotante de Java. –

+3

Además de lo que dijo Martin York, técnicamente está realizando un * mapeo definido por la implementación * desde la referencia flotante a la referencia int. Estrictamente hablando, no hay garantía de que la referencia int resultante aludirá al mismo objeto. – jalf

Respuesta

24
float f = 12.5f; 
int i = Float.floatToIntBits(f); 
+1

+1 ........... :) –

+1

Por curiosidad, ¿cuál es la diferencia entre lo que publicaste y un int i = (int) f ;? –

+3

@Montecristo: (int) f en Java es como static_cast (f) en C++. – missingfaktor

Cuestiones relacionadas