c代码
#include<stdio.h>
#include<string.h> //字符串头文件
int main()
{
long fun(char s[]);
char str[100]; //定义长度
scanf("%s",str);
int c=fun(str);
printf("%d",c);
return 0;
}
long fun(char s[])
{
int sum=0;
for(int i=0;s[i];i++)
{
if(s[i]>='0'&&s[i]<='9')
{
int t=s[i]-'0';
sum=sum*16+t;
}
else if(s[i]>='A'&&s[i]<='F')
{
int t=s[i]-'A'+10;
sum=sum*16+t;
}
else if(s[i]>='a'&&s[i]<='f')
{
int t=s[i]-'a'+10;
sum=sum*16+t;
}
}
return sum;
}
c++代码
//123=[(1+0*16)*16+2]*16+3;
#include<iostream>
using namespace std;
int main()
{
long fun(string s);
string ss;
cin>>ss;
cout<<fun(ss);
return 0;
}
long fun(string s)
{
long sum=0;
for(int i=0;s[i];i++)
{
if(s[i]>='0'&&s[i]<='9')
{
int t=s[i]-'0';//0-9的字符减去0就是数字了
sum=sum*16+t;
}
else if(s[i]>='A'&&s[i]<='F')
{
int t=s[i]-'A'+10; //B-A=1 B:11
sum=sum*16+t;
}
else if(s[i]>='a'&&s[i]<='f')
{
int t=s[i]-'a'+10;
sum=sum*16+t;
}
}
return sum;
}