题解 | #进制转换#

进制转换

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")

全部评论

相关推荐

每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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