如题所述
第1个回答 2020-01-07
不知道你的问题是什么,就照着写了个,测试通过
#include
<stdio.h>
int
shift16_10(char
num[]);
int
main()
{
char
a[100];
printf("请输入一个16进制的数:\n");
scanf("%s",
a);
int
n=shift16_10(a);
printf("%d",
n);
return
0;
}
int
shift16_10(char
num[]){
int
sum=0,
i=0;
while(num[i]
!=
'\0')
{
sum*=16;
if(num[i]>='0'
&&
num[i]<='9')
sum+=num[i]-'0';
else
if(num[i]>='A'
&&
num[i]<='F'){
sum+=num[i]-'A'+10;
}
else
if(num[i]>='a'
&&
num[i]<='f'){
sum+=num[i]-'a'+10;
}
i++;
}
return
sum;
}
#include
<stdio.h>
int
shift16_10(char
num[]);
int
main()
{
char
a[100];
printf("请输入一个16进制的数:\n");
scanf("%s",
a);
int
n=shift16_10(a);
printf("%d",
n);
return
0;
}
int
shift16_10(char
num[]){
int
sum=0,
i=0;
while(num[i]
!=
'\0')
{
sum*=16;
if(num[i]>='0'
&&
num[i]<='9')
sum+=num[i]-'0';
else
if(num[i]>='A'
&&
num[i]<='F'){
sum+=num[i]-'A'+10;
}
else
if(num[i]>='a'
&&
num[i]<='f'){
sum+=num[i]-'a'+10;
}
i++;
}
return
sum;
}