Cómo convertir cadena hexadecimal a punto flotante de precisión simple en Java?¿Cómo convertir una cadena hexagonal para flotar en Java?
Por ejemplo, la forma de implementar:
float f = HexStringToFloat ("BF800000"); // f debe contener ahora -1.0
Lo pregunto porque he intentado:
float f = (float)(-1.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue());
Pero tengo la siguiente excepción:
java.lang.NumberFormatException: Para cadena de entrada: "bf800000 "
me sale: java.lang.NumberFormatException: Para cadena de entrada: "BF800000" – apalopohapa
Cuando la prueba: Float.intBitsToFloat (Integer.valueOf ("BF800000", 16) .intValue()); Obtengo la excepción: java.lang.NumberFormatException: Para cadena de entrada: "BF800000" – apalopohapa
Está desbordando un int. Cambiar a Long.valueOf (myString, 16) no arroja la excepción, pero da como resultado -1.0 en lugar de 10.0. ¿Estás seguro de que 10.0 es el resultado correcto? –