VC 整数转16进制的字符串
int EX0IEN;
cstring strEX0IEN;
    char c1[4]; 
    sprintf(c1, "0x%02x",EX0IEN); 
    strEX0IEN.Format("%s", c1);
VC 16进制的字符串转整数
int ChangeNum(CString str,int length)      
{      
    char  revstr[16]={0};  //根据十六进制字符串的长度,这里注意数组不要越界   
    int   num[16]={0};      
    int   count=1;      
    int   result=0;      
    strcpy(revstr,str);      
    for   (int i=length-1;i>=0;i--)      
    {      
        if ((revstr[i]>='0') && (revstr[i]<='9'))      
            num[i]=revstr[i]-48;//字符0的ASCII值为48   
        else if ((revstr[i]>='a') && (revstr[i]<='f'))      
            num[i]=revstr[i]-'a'+10;      
        else if ((revstr[i]>='A') && (revstr[i]<='F'))      
            num[i]=revstr[i]-'A'+10;      
        else      
            num[i]=0;    
        result=result+num[i]*count;      
        count=count*16;//十六进制(如果是八进制就在这里乘以8)       
    }      
    return result;      
}   
  
int main()   
{   
    CString   str="0x11";    
    int n=0;   
    n=ChangeNum(str,str.GetLength());   
    printf("%d
",n);   
        return 0;      
}