有两个编码转换函数,哪位兄弟能帮忙实现一下,不甚感激! /**
 * convert HEX to ASCII
 * 
 * example: 0x0C -> 0x3132
          *          0x1234 -> 0x34363630
 * 
 * @param inArray        input data array
 * @param inOffset       input data offset
 * @param inLength       input data length
 * @param outArray       output data array
 * @param outOffset  output data offset
 * @return @return the length of the result ASC stream
 */
public static short HEXToASC(byte[] inArray,
                                 short inOffset,
                                 short inLength,
                                 byte[] outArray,
                                 short outOffset){
return 0;
}
/**
 * convert ASCII to HEX
 * The method is used in the situation: every byte in the source stream is between "0x30" and "0x39".
 * 
 * example: 0x3132 -> 0x0C
 * example: 0x31323334 -> 0x04D2 
 * 
 * @param inArray        input data array
 * @param inOffset       input data offset
 * @param inLength       input data length
 * @param outArray       output data array
 * @param outOffset      output data offset
 *
 * @return the length of the result HEX stream
 */
public static short ASCToHEX(byte[] inArray,
                                 short inOffset,
                                 short inLength,
                                 byte[] outArray,
                                 short outOffset){
return 0;
}

解决方案 »

  1.   

    0x0C -> 0x3132
    0x1234 -> 0x34363630看不懂是啥!
      

  2.   

    0x0C => 12 => "12" => '1','2' => 0x3132
    0x1234 =>4660 => "4660" => '4','6','6','0' => 0x34363630
      

  3.   

    对,3楼的兄弟理解的对。
    感觉不是很好弄吧,不能用string做转换,因为程序是javacard要用的。
      

  4.   


    //text是你转化的字符串.
    char[] array = text.toCharArray();
    StringBuilder sb = new StringBuilder();
    sb.append("0x")
    for (char c : array) {
    sb.append(Integer.toHexString(c).toUpperCase());
    }
    }
      

  5.   


    兄弟啊,刚说过不能用string方式的。
      

  6.   

    你这个不是编码问题,虽然看了 redduke1202 的解释依然晕。你需要处理两个问题:1.16进制和10进制转化
    这个不难吧,计算机基础。简单的模运算和四则运算。2.数值和ASCII码转化
    '0'=48
    每个byte数值+48不久好了这些基础方法实现都不回使用到String的。