c语言初学者最容易懂得十六进制转十进制
**
首先,先了解一下ASCII码表
**
https://baike.baidu.com/item/ASCII/309296?fr=aladdin
代码:
int main()
{
char ch[20];
scanf("%s\n", ch);//%s是字符串的,用"" %c是单个字符的,用’’
int len = strlen(ch);//求字符串的长度
int i = 0;
int j = 0;
int sum = 0;//存放十进制数总和 如果数字较大 int字节太小 可以用 long long
for (i = len - 1; i >= 0; i–)
{
//计算0-9十六进制转十进制
if ((ch[i] >= ‘0’) && (ch[i] <= ‘9’))//字符一定要加单引号
{
sum += (ch[i] - ‘0’) * (int)pow(16, j);//pow函数是double类型,强制类型转换成int 用到pow函数得引头文件#include <math.h>
j++;
}
//计算10-15十六进制转十进制 A-F分别对应10 11 12 13 14 15
else if (ch[i] >= ‘A’ && ch[i] <= ‘F’)//ASCII码表了解一下
{
sum += (ch[i]-‘A’+10)*pow(16,j)
j++;
}
}
printf("%d\n",sum);
return 0;
}
如果出现这个错误,那是因为 用了scanf函数,这时候需要定义**#define _CRT_SECURE_NO_WARNINGS 1** 然后就好了