- 16进制转10进制
(https://www.cnblogs.com/gaizai/p/4233780.html#_labelConvert13)
- 注意pow属于cmath库。
- 注意如何取得 11 这个数字 s[i]-'A' + 10
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main(){
string s;
while(cin>>s){
int bit = 0;
int ans = 0;
for(int i = s.length()-1; i>1;i--){// 0x不需要分析,直接从地位开始处理
if(s[i]>='0'&&s[i]<='9'){
ans += (s[i]-'0')*pow(16,bit++);
}else if(s[i]>='A'&&s[i]<='F'){
ans += (s[i]-'A' + 10 )*pow(16,bit++);
}
}
cout<<ans<<endl;
}
}
京公网安备 11010502036488号