题解 | #进制转换#

进制转换

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

#include <bits/stdc++.h> using namespace::std;

int main() { string str;

while (getline(cin, str)) {
    uint64_t sum = 0;
    uint64_t bit = 0;
    string head = str.substr(0, 2);
    if (head.compare("0x")) {
        return -1;
    }
    for (uint64_t i = str.size()-1; i > 1; i--) {
        if (str[i] >= 'A') {
            sum += (str[i]-55) * pow(16, bit);
        } else if (str[i] >= 'a') {
            sum += (str[i]-'a'+10) * pow(16, bit);
        } else {
            sum += int(str[i]-'0') * pow(16, bit);
        }
        bit++;
    }
    cout << sum << endl;
}

return 0;

}

全部评论

相关推荐

菜鸡29号:根据已有信息能初步得出以下几点: 1、硕士排了大本和大专 2、要求会多语言要么是招人很挑剔要么就是干的活杂 3、给出校招薪资范围过于巨大,说明里面的薪资制度(包括涨薪)可能有大坑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务