十六进制转化十进制

#include "stdio.h"

void main()
{
/*
    char s[10];
    int i,n=0;
    printf("输入十六进制数:\n");
    scanf("%s",s);
    for(i=0;s[i]!='\0';i++)
     {
         if(s[i]>='0'&&s[i]<='9')    //0-9字符值转换为数值 
            n=n*16+s[i]-'0';
         if(s[i]>='a'&&s[i]<='f')    //a-f字符值转化为数值    
            n=n*16+s[i]-'a'+10;
         if(s[i]>='A'&&s[i]<='F')    //A-F字符值转化为数值 
               n=n*16+s[i]-'A'+10;
    }   
    printf("十六进制转化为十进制的结果为:%d\n",n);
*/
    char Hex[10];
    int r=0,i;
    printf("输入十六进制数:\n");
    scanf("%s",Hex);
    for(i=0;Hex[i]!='\0';i++)
    {
        if(Hex[i]>='0'&&Hex[i]<='9')
        {
            r=r*16+Hex[i]-'0';
        }
        if(Hex[i]>='A'&&Hex[i]<='F')
        {
            r=r*16+Hex[i]-'A'+10;
        }
        if(Hex[i]>='a'&&Hex[i]<='f')
        {
            r=r*16+Hex[i]-'a'+10;
        }            
    }
    printf("十六进制转化为十进制的结果为:%d\n",r);    
}
posted @ 2014-03-24 12:31  FLWen  阅读(1085)  评论(2)    收藏  举报