第七章第16题,写出一个函数,输入一个十六进制数,输出相应的十进制数
输入1:
123
输出1:
291
输入2:
14Bb
输出2:
5307
程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>
#include<math.h>
int main()
{
void HextoOc(char Hex[]);
char Hex[20];
scanf("%s", Hex);
HextoOc(Hex);
}
void HextoOc(char Hex[])//16进制转10进制
{
int len,i,result=0,t;
for (i = 0,len=strlen(Hex)-1; i < strlen(Hex); i++,len--)
{
if (Hex[i] >= 'a' && Hex[i] <= 'z')
{
t = Hex[i] - 'a' + 10;
result = result + t * pow(16, len);
}
else if (Hex[i] >= 'A' && Hex[i] <= 'Z')
{
t = Hex[i] - 'A' + 10;
result = result + t * pow(16, len);
}
else
{
t = Hex[i] - '0';
result = result + t * pow(16, len);
}
}
printf("%d", result);
}