现有一字符串,例如:"cd 18 e9 42",是报文帧的一部分,实际是16进制的char数组,char ch[]={0xcd,0x18,0xe9,0x42};
怎样转换成一个float数字,请帮我写一个函数谢谢!最好是参数直接传入字符串。请大家帮忙了!!!

解决方案 »

  1.   

    public static void main(String[] args) throws Exception {
    String s = "cd 18 e9 42";
    System.out.println(getFloat(s));
    }

    private static float getFloat(String s) {
    Scanner sc = new Scanner(s);
    byte b;
    ByteBuffer buf = ByteBuffer.allocate(4);
    for(int i=0; i<4; i++) {
    b = (byte)Integer.parseInt(sc.next(), 16);
    buf.put(b);
    }
    buf.position(0);
    return buf.getFloat();
    }