2009-07-02 69 views
6

如何將十六進制字符串轉換爲Java中的單精度浮點數?如何將十六進制字符串轉換爲Java中的浮點數?

例如,如何實現:

浮子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 「

回答

16
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))); 
    } 
} 
+0

我收到: java.lang.NumberFormatException:對於輸入字符串:「BF800000」 – apalopohapa 2009-07-02 00:09:00

2

您需要的十六進制值轉換爲int(左作爲練習),然後使用Float.intBitsToFloat(int)

相關問題