Como converter seqüência hexadecimal para flutuar em Java?

Como converter seqüência hexadecimal para ponto flutuante de precisão única em Java?

Por exemplo, como implementar:

float f = HexStringToFloat ("BF800000"); // f deve agora conter -1.0

Eu pergunto isso porque eu tentei:

float f = (float)(-1.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue());

Mas recebo a seguinte exceção:

java.lang.NumberFormatException: Para string de entrada: "bf800000"

questionAnswers(2)

yourAnswerToTheQuestion