注意
首先定义一个字符串数组,它的公式是sum=sum*16+a;
a代表的是一个个字符,存的是ASCII码,所以不能直接加起来,必须转换为真正的数值,当a为字母时,a=a-‘7’,当a是数字时,a=a-‘0’。
代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
char arr[50];
int i = 0, sum = 0;
scanf("%s", &arr);
while (arr[i] != '\0')
{
if (arr[i] >= 'A'&&arr[i] <= 'F')
{
arr[i] = arr[i] - '7';//字母转换为数值
}
else
arr[i] = arr[i] - '0';//数字转换为数值,因为在字符串数组中它是一个个字符,存的是ascii码
sum = sum * 16 + arr[i];
i++;
}
printf("%d\n", sum);
system("pause");
return 0;
}