题解 | #进制转换#

进制转换

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

全部评论

相关推荐

2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务