用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。请给程序给出详细点的注释。多谢。

2024-11-08 08:44:39
推荐回答(1个)
回答(1):

/*
请输入一个16进制数 : FF
这个数的10进制是 : 255
Press any key to continue
*/
#include
unsigned Hex2Dec(char hex[]) {
unsigned i,num = 0;
for(i = 0; hex[i]; ++i) {
if(hex[i] >= 'a' && hex[i] <= 'f')
num = 16 * num + hex[i] - 'a' + 10;
else if(hex[i] >= 'A' && hex[i] <= 'F')
num = 16 * num + hex[i] - 'A' + 10;
else if(hex[i] >= '0' && hex[i] <= '9')
num = 16 * num + hex[i] - '0';
}
return num;
}

int main() {
char s[9];
printf("请输入一个16进制数 : ");
scanf("%s",s);
printf("这个数的10进制是 : %u\n",Hex2Dec(s));
return 0;
}