题解 | #进制转换#

进制转换

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 15:58
投个小米提前批试试水,先投一个岗位看看形势,不行就再沉淀一下投第二个岗位,莫辜负
Java抽象带篮子:我嘞个骚刚,已经开始研发6g了吗
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
小叮当411:应该是1-3个月吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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