题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
- 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; } }
算法解析 文章被收录于专栏
这里主要是算法岗的自我思路总结