Java 16进制字符串,右高转IEEE-754标准解析
public static void main(String[] args) {
strTo754Float("7B148E3F");
}
public static float strTo754Float(String str){
String hexValue = reverseHex(str) ;
long longValue = Long.parseLong(hexValue, 16);
float floatValue = Float.intBitsToFloat((int) longValue);
System.out.println("float Precision (float): " + floatValue);
return floatValue;
}
public static String reverseHex(String hex) {
char[] charArray = hex.toCharArray();
int length = charArray.length;
int times = length / 2;
for (int c1i = 0; c1i < times; c1i += 2) {
int c2i = c1i + 1;
char c1 = charArray[c1i];
char c2 = charArray[c2i];
int c3i = length - c1i - 2;
int c4i = length - c1i - 1;
charArray[c1i] = charArray[c3i];
charArray[c2i] = charArray[c4i];
charArray[c3i] = c1;
charArray[c4i] = c2;
}
return new String(charArray);
}