VC 数据转换

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;     
}