どのようにJavaで浮いているように16進文字列に変換するには?
-
21-08-2019 - |
質問
Javaで単精度浮動小数点に16進数の文字列を変換するには?
たとえば、実装する方法:
フロートF = HexStringToFloat( "BF800000")。 // fは今-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"
解決
public class Test {
public static void main (String[] args) {
String myString = "BF800000";
Long i = Long.parseLong(myString, 16);
Float f = Float.intBitsToFloat(i.intValue());
System.out.println(f);
System.out.println(Integer.toHexString(Float.floatToIntBits(f)));
}
}
他のヒント
あなたは(練習として左)int型に進値を変換し、
Float.intBitsToFloat(int)
を使用する必要があります 所属していません StackOverflow