来一简单的先,不好意思,最近特忙,如果没人回我慢慢写给你。public void convert_dest(char[] src,char[] dest)
{
for(int i=0;i<src.length;i=i+2)
{

dest[i+1] = src[i];
dest[i]   = src[i+1];
dest[12]  = 'F';
}
}

解决方案 »

  1.   

    void AscToHex(Vector pszSrc,int nSrcLen,Vector pszDest)
    {
    for(int i=0;i<nSrcLen;i++)
    {
    Vector bhex;
                       bhex.add('\0');
    System.out.print(bhex+"%02X"+pszSrc.get(i));
    pszDest.addAll(bhex);
    }
    }
      

  2.   

    public void AscToHex(char[] pszSrc,int nSrcLen,char[] pszDest)
    {
    String strDest = new String(pszDest);
    for(int i=0;i<nSrcLen;i++)
    {
    //用0补两位
    String bhex = '0'+pszSrc[i]+"\0";
    System.out.print(bhex);
    strDest = strDest + bhex;
    }
    //连接后字符串
    pszDest =  strDest.toCharArray();
    }
      

  3.   

    //用0补两位
    String bhex = '0'+pszSrc[i]+"\0";
    为什么用0补两位,'0'是"0"吗?"\0"是什么意思啊?
      

  4.   

    public void HexToAsc(char[] pszSrc,int nSrcLen,char[] pszDest)
    {
    int j = 0;
    String strSrc = new String(pszSrc);
    for(int i=0;i<nSrcLen;i=i+2)
    {
    int c;
    //char bhex[3] = {'\0'};
    String strhex;
    //memcpy(bhex,pszSrc+i,2);
    strhex = strSrc.substring(i,i+3);
    //sscanf(bhex,"%2x",&c);
    c = (new Integer(strhex)).intValue();
    pszDest[j] = (char)c;
    j++;
    }
    }
      

  5.   

    //用0补两位
    String bhex = '0'+pszSrc[i]+"\0";
    为什么用0补两位,'0'是"0"吗?"\0"是什么意思啊?
    回答:
    sprintf(bhex,"%02X",*(BYTE*)&pszSrc[i]);
    的意思是一个格式化的字符串输出到一个目的字符串中不够两位补零。
    不知道理解的对不对?
    '0'和"0"在这里一样。
    "\0"是字符串截止符,意思是到此字符串结束了。
      

  6.   

    public void ToUTF8(long un, char[] out, int[] outlen) {
    long UTF16;
    UTF16 = un;
    if (UTF16 < 0x80) {
    out[0] = (char) UTF16;
    outlen[0] = 1;
    } else
    if (UTF16 < 0x800) {
    outlen[0] = 2;
    out[1] = (char)(0x80 + (UTF16 & 0x3F));
    UTF16 = UTF16 / 0x40;
    out[0] = (char)(0xC0 + (UTF16 & 0x1F));
    } else {
    outlen[0] = 3;
    out[2] = (char)(0x80 + (UTF16 & 0x3F));
    UTF16 = UTF16 / 0x40;
    out[1] = (char)(0x80 + (UTF16 & 0x3F));
    UTF16 = UTF16 / 0x40;
    out[0] = (char)(0xE0 + (UTF16 & 0xF));
    }
    }
      

  7.   

    sprintf(bhex,"%02X",*(BYTE*)&pszSrc[i]);
    我记得应该是不够两位才补成两位吧?现在你无条件加了两个零好像不太对劲不过有断时间不不写c的程序,记得不是很清楚了。讨论一下,呵呵。
      

  8.   

    楼上说的对。多谢指正。
    应为:
    //用0补两位
    String bhex = pszSrc[i]+pszSrc[i+1]+"\0";