题解 | #进制转换#

进制转换

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

#include <iostream>
using namespace std;

int main() {
    string str;
    cin>>str;
    int sum = 0;
    int bit;
    for(int i=2; i<str.size(); i++){
        //取出每一位
        int temp;
        if(str[i]=='A'||str[i]=='a'){
            temp = 10;
        }else if(str[i]=='B'||str[i]=='b'){
            temp = 11;
        }else if(str[i]=='C'||str[i]=='c'){
            temp  = 12;
        }else if(str[i]=='D'||str[i]=='d'){
            temp = 13;
        }else if(str[i]=='E'||str[i]=='e'){
            temp  =14;
        }else if(str[i]=='F'||str[i]=='f'){
            temp = 15;
        }else{
            temp = str[i]-'0';
        }
        bit = str.size()-i-1;  //所在位 从低位0开始
        //求当前数字所在位的权重
        for(int j=0; j<bit; j++){
            temp*=16;
        }
        sum+=temp;
    }
    cout<<sum<<endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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