题解 | #进制转换#

进制转换

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;

}

全部评论

相关推荐

但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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