想要实现的功能描述如下:
"AB"(该二个字符的ASCII值分别对应 41 42 )  <==>  "4142"("AB"字符串的ASCII值的String 形式)
请问如何实现二者间的相互转换,敬请指教!
最好是程序,谢谢。

解决方案 »

  1.   

    "AB"=>"4142" use %x format
      

  2.   

    字符付给整型
    char ch = 'A';
    int a = ch;
    char buffer[20];itoa( a, buffer, 10 );反过来转换:
    每取两位用
    int a = atoi("41");
    char ch = (char)a;
      

  3.   

    CString str1="AB";
    CString str,str2="";
    int i=0;
    for(i=0;i<str1.GetLength();i++)
    {
    str.Format("%02X ",str1[i]);
    str2=str2+str;
    }
      

  4.   

    刚才贴得有问题:
    是针对10禁制ASCII值的
      

  5.   

    1.
    CString str1("AB"),str2, sT ;
    int nLen = str1.GetLength() ;
    for( int i = 0 ; i < nLen ; ++ i )
    {
    sT.Format( "%d", str1[i] ) ;
    str2 += sT ;
    }
    ///////////////////////////
    2.
    CString str1( "4142" ), str2, sT ;
    int nLen = str1.GetLength() / 2 ;
    for( int i = 0 ; i < nLen ; ++ i ) 
    {
    sT = str1.Mid( i, 2 ) ;
    str2 += (TCHAR)atoi(sT) ;
    }
      

  6.   

    1:CString str1="AB";
    CString str,str2="";
    int i=0;
    for(i=0;i<str1.GetLength();i++)
    {
    str.Format("%02X ",str1[i]);
    str2=str2+str;
    }2:
    char c;
    CString str1= "41 42" , str2, str3 ="";
    str1+=" ";
    while (str1!="") 
    {
    str2=str1.Left(str1.Find(" "));
    str1=str1.Mid(str1.Find(" ")+1);
    sscanf(str2,"%02X",&c);
    str3=str3+c;
    }
      

  7.   

    CString str = "AB";
    CString str1;
    str1.Format("%02X%02X", str[0], str[1]);str1 = "4142";
    DWORD data = strtoul((LPCTSTR)str1, NULL, 16);
    char *p = (char*)&data;
    *(p+2) = *p;
    p++;
    str = p;