編寫函式,輸入一個十六進位制數,輸出相應的十進位制數。
阿新 • • 發佈:2019-01-30
#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;
}
#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;
}