Problem E: 十六进制转十进制

#include<stdio.h>
int main(void)
{
    char str[80];
    int sum,i;
    while(gets(str)!=NULL)
    {
       sum=0;
       for(i=0;str[i]!='\0';i++)
        {
            if(str[i]>='a' && str[i]<='f')
                str[i]-=32;//将小写转换成大写 
            if(str[i]>='0' && str[i]<='9')
                sum=sum*16+str[i]-'0';//16进制换算十进制 
 
            if (str[i]>='A' && str[i]<='F')
                sum=sum*16+str[i]-'A'+10;//让十进制变成十六进制,ABCDEF代表10,11,12,13,14,15 
        }
        printf("%d\n",sum);
    }
    return 0;
}

 

posted @ 2018-11-10 11:25  MichaelCecil  阅读(1618)  评论(0编辑  收藏  举报