浮点数的二进制就不详细说了,直接上源码方法吧
-
16进制浮点数转10进制(不带符号)
public static void main(String[] args) { String s="41a4c000"; Float value = Float.intBitsToFloat(Integer.valueOf(s.trim(), 16)); System.out.println("16进制浮点数转10进制="+value); Float f=20.59375f; System.out.println("10进制浮点数转16进制="+Integer.toHexString(Float.floatToIntBits(f))); }
但是这种转换会存在一个问题:如果这个16进制的值为负数,那么会发生异常
2. 16进制浮点数转10进制(带符号)/** * 将 4字节的16进制字符串,转换为32位带符号的十进制浮点型 * @param str 4字节 16进制字符 * @return */ public static float hexToFloat(String str){ return Float.intBitsToFloat(new BigInteger(str, 16).intValue()); } /** * 将带符号的32位浮点数装换为16进制 * @param value * @return */ public static String folatToHexString(Float value){ return Integer.toHexString(Float.floatToIntBits(value)); }