2个思路
解法1:用标准cin cout实现
#include<math.h>
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
char str[100];
int i=0,count,sum;
while(gets(str)){
count=strlen(str);
sum=0;
for(i=count-1;i>=0;i--){ // 从高位到地位
if(str[i]>='0'&&str[i]<='9')
sum+=(str[i]-48)*pow(16,count-1-i); // -48是因为‘0’从48号编码开始
else if(str[i]>='A'&&str[i]<='Z')
sum+=(str[i]-55)*pow(16,count-1-i); /// -55是因为‘A’代表‘10’,从65号编码开始
}
cout<<sum<<endl;
}
return 0;
}
C++中int与char互换:
解法2:识别输入为十六进制
#include <iostream>
using namespace std;
int main(){
int a;
while ((cin >> hex >> a))
{cout << a << endl;
}
/*
*用while(cin>>a)实现循环输入,并指定输入格式为十六进制
*/
return 0;
}