版权声明:转载请注明出处 https://blog.csdn.net/nanhuaibeian/article/details/87876800
1. 题目
输入一个十六进制的字符串,以\n结束,输出其相应的十进制数。
解:如16进制数ABC化为10进制……
ABC(16)÷10 = 112 余 8
112(16)÷10 = 1B 余 4
1B(16)÷10 = 2 余 7
2(16)÷10 = 0 余 2
反向取余数是2748(10)
2. 代码
#include <stdio.h>
#include <string.h>
#include <math.h>
#define max 100
int main() {
char s[max];
int date=0,i=0,len,temp;
printf("请输入字符串:");
gets(s);
len = strlen(s) - 1;
while(s[len]!='\0') {
if(s[len]>='0'&&s[len]<='9') {
temp = (s[len]-'0')*pow(16,i);
date = date + temp;
}
if(s[len]>='a'&&s[len]<='f') {
temp = (s[len]-'a'+10)*pow(16,i);
date = date + temp;
}
if(s[len]>='A'&&s[len]<='F') {
temp = (s[len]-'A'+10)*pow(16,i);
date = date + temp;
}
len--;
i++;
}
printf("字符串%s转换成十进制数为%d",s,date);
return 0;
}