Quote:
引用第4楼第二个太阳于2007-04-08 22:55发表的:
123的值用ASCII码(也就是字符)减'0'得出来 ABC的值用ASCII码(字符)减'A'加10得
例 '1'-'0'=1 '5'-'0'=5 'A'-'A'+10=10 'C'-'A'+10=12
#include<stdio.h>
#include<math.h>
main()
{
char str[20];
printf("输入一个十六进制数:");
gets(str);
printf("化成十进制后数为:%d\n",hex_to_decimalist(str));
}
int hex_to_decimalist(char *num) //十六进制转换为十进制函数,并把结果回
{
int count=0,number[20];
long result=0;
char *star=num;
while(*num!='\0')
{
if(*num>='A'&&*num<='F')*num=*num-'A'+10;
else if(*num>='a'&&*num<='f')*num=*num-'a'+10;
else if(*num>='1'&&*num<='9')*num=*num-'0';
else {printf("输入的数有错!");exit(0); }
num++;
}
num=num-1;
while(num>=star)
{
result=result+*num*pow(16,count);
num--;count++;
}
return (result);
}