1. 程式人生 > >編寫函式,輸入一個十六進位制數,輸出相應的十進位制數。

編寫函式,輸入一個十六進位制數,輸出相應的十進位制數。

#include<stdio.h>
#include<string.h>
#include<math.h>
int output(char str[])
{
    int l=strlen(str);
    int i;
    int sum=0;
    for(i=0;i<l;i++)// 權值+位數=l-1 4af 0--2 1--1 2--0
    {
        if(str[i]>='0' && str[i]<='9')
            sum+=(str[i]-'0')*pow(16,l-1-i);
        else if(str[i]>='a' && str[i]<='f')// 'a'--'f'
            sum+=(str[i]-'a'+10)*pow(16,l-1-i);
        else if (str[i]>='A' && str[i]<='F')//'A'--'F'
            sum+=(str[i]-'A'+10)*pow(16,l-1-i);
    }
    return sum;
}
int main()
{
    char str[100];
    scanf("%s",str);
    printf("%d",output(str));
    return 0;
}