题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

  1. 16进制转10进制
    图片说明 (https://www.cnblogs.com/gaizai/p/4233780.html#_labelConvert13)
  2. 注意pow属于cmath库。
  3. 注意如何取得 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;
    }
}
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务