题解 | #进制转换#

进制转换

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;
    }
}
算法解析 文章被收录于专栏

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:55
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务