题解 | #进制转换#

进制转换

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

全部评论

相关推荐

03-24 17:45
门头沟学院 C++
一个头三个大:我也是这样,状态持续了十天然后今天上午流程结束了,应该是横向对比挂了
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务