题解 | #进制转换#

进制转换

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

#include <iostream>
#include "math.h"
using namespace std;

int main() {
    int num10 = 0;
    string numb16;
while(cin >> numb16)
{
string purenumber = numb16.substr(2,numb16.size()-2);
    char *a = purenumber.data();
    
    for(int i = purenumber.length()-1;i >= 0;i--)
    {
        if(purenumber[i]>='0'&&purenumber[i]<='9')
        {
            num10 += (purenumber[i]-'0')*pow(16,purenumber.length()-i-1);
        }
        else if(purenumber[i]>='A'&&purenumber[i]<='F')
        {
            num10 += (purenumber[i]-'A'+10)*pow(16,purenumber.length()-i-1);
        }

    }
cout << num10<<endl;

}

}
// 64 位输出请用 printf("%lld")

知识点1:可以用string[]来访问string的内容。

知识点2:将char类型转换为in t 'char'-'0'

知识点3:'char'-'A'+10类似的用法

4:string.length();

5:对string str[0],是string最左边的字母

全部评论

相关推荐

11-11 16:40
已编辑
门头沟学院 人工智能
不知道怎么取名字_:这个有点不合理了,相当于已经毕业了,但还是没转正,这不就是白嫖
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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