如何将一个16进制的字符串"F00F 000D 2007 0119 1758 4829"转换成二进制字符串?
然后,如何再把转换成的二进制串的前三位转换成16进制的字符串?

解决方案 »

  1.   

    String []ss = "F00F 000D 2007 0119 1758 4829".split(" ");
    String []bin = new String[ss.length ];
    int[] ii = new int[ss.length ];
    for(int i=0;i<ss.length ;i++){
    ii[i]=Integer.parseInt(ss[i],16);
    bin[i] = Integer.toBinaryString(ii[i]);
    }

    for(int i=0;i<ss.length ;i++){
    ss[i] = Integer.toHexString(Integer.parseInt(bin[i].substring(0,3),2))
    +bin[i].substring(3,bin[i].length());

    }
      

  2.   

    String a = "F00F 000D 2007 0119 1758 4829";
            char[] b = a.toCharArray();
            //二进制结果
            StringBuffer binaryResult = new StringBuffer(a.length());
            for (int i=0 ; i <b.length ; ++i){
                if (b[i]!=' '){
                    binaryResult.append(Integer.toBinaryString(Integer.parseInt(String.valueOf(b[i]),16)));
                } else {
                    binaryResult.append(' ');
                }
            }
            //16进制结果
            System.out.println(Integer.toHexString(Integer.parseInt(binaryResult.substring(0,3))));