Как преобразовать шестнадцатеричную строку в одинарную точку с плавающей запятой в Java?Как преобразовать шестнадцатеричную строку в float в Java?
Например, как реализовать:
поплавка F = HexStringToFloat ("BF800000"); // е должны теперь содержать -1.0
Я спрашиваю это потому, что я пробовал:
float f = (float)(-1.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue());
Но я получаю следующее исключение:
java.lang.NumberFormatException: Для ввода строки: «bf800000 "
я получаю: java.lang.NumberFormatException: Для ввода строки: "BF800000" – apalopohapa
При тестировании: Float.intBitsToFloat (Integer.valueOf ("BF800000", 16) .intValue()); Получалось исключение: java.lang.NumberFormatException: для строки ввода: «BF800000» – apalopohapa
Это переполнение int. Переключение на Long.valueOf (myString, 16) не генерирует исключение, но приводит к -1.0 вместо 10.0. Вы уверены, что 10.0 - правильный результат? –