题解 | #进制转换#

进制转换

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;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务