#include<stdio.h>
#include<math.h>
int main()
{
char a[20],b[20]={0};
int n=0,i,j=0,c=0,s=0;
while((a[n]=getchar())!='#')
{
n++;
}
for(i=0;i<n;i++)
{
if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='f'))
{
b[j]=a[i];
j++;
if(c!=0)
{
c++;
}
}
if(c==0)
{
if(a[i]=='-')
{
b[j]=a[i];
c++;
j++;
}
}
}
printf("%s",b);
n=j-1;
c=0;
for(i=n;n>0;i--)
{
if(b[i]>='0'&&b[i]<='9')
c=pow(16,n-i)*(b[i]-'0');
if(b[i]>='a'&&b[i]<='e')
c=pow(16,n-i)*(b[i]-'a'+10);
s=s+c;
}
printf("%d",s);
if(a[0]=='-')
{
printf("-%d",s);
}
else
{
if(b[i]>='0'&&b[i]<='9')
c=pow(16,n)*(b[i]-'0');
if(b[i]>='a'&&b[i]<='e')
c=pow(16,n)*(b[i]-'a'+10);
s=s+c;
printf("%d",s);
}
}
希望帮忙看看感激不尽.
大写的十六进制字符 A~F没有判断