首页 > 其他 > 详细

SDNU 1431.十六进制转十进制

时间:2019-02-15 13:51:07      阅读:177      评论:0      收藏:0      [点我收藏+]

Description

问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535
#include <cstdio>
#include <iostream>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stack>

using namespace std;
#define ll long long

char a[20];
ll s[20], sum, x;
int main()
{
    sum = 0;
    x = 1;
    memset(a, 0, sizeof(a));
    while(cin >> a)
    {
        sum = 0;
        x = 1;
        for(int i = strlen(a)-1; i >= 0; i--)
        {
            if(a[i] >= A && a[i] <= Z)sum += (ll)((a[i]-A)+10)*x;
            else if(a[i] >= 0 && a[i] <= 9)sum += (ll)(a[i]-0)*x;
            x *= 16;
        }
        printf("%lld\n", sum);
        memset(a, 0, sizeof(a));
    }
    return 0;
}

 

SDNU 1431.十六进制转十进制

原文:https://www.cnblogs.com/RootVount/p/10383224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!