1431.十六进制转十进制 SDNUOJ 1431

int会溢出

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;

int main()
{
    char s[10];
    gets(s);
    long long sum = 0;
    int i = strlen(s);
    reverse(s, s + i);
    for(int j = 0; j < i; j++)
    {
        switch(s[j])
        {
        case 'A':
            sum += 10 * pow(16, j);
            break;
        case 'B':
            sum += 11 * pow(16, j);
            break;
        case 'C':
            sum += 12 * pow(16, j);
            break;
        case 'D':
            sum += 13 * pow(16, j);
            break;
        case 'E':
            sum += 14 * pow(16, j);
            break;
        case 'F':
            sum += 15 * pow(16, j);
            break;
        default:
            sum += (s[j] - '0' ) * pow(16, j);
        }
    }
    cout << sum ;
    return 0;
}

    原文作者:进制转换
    原文地址: https://blog.csdn.net/zhaobaole2018/article/details/84961307
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞