蓝桥杯 BASIC-11 基础练习 十六进制转十进制

基础练习 十六进制转十进制  

时间限制:1.0s   内存限制:512.0MB

问题描述

  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

#include <stdio.h>
#include <string.h>

int main()
{
    char hex[10] = { 0 };
    long long int decimal = 0;

    scanf("%s", hex);
    for (int i = 0; i < (int)strlen(hex); ++i)
    {
        if ('0' <= hex[i] && hex[i] <= '9')
            decimal = decimal * 16 + (hex[i] - '0');
        else
            decimal = decimal * 16 + (hex[i] - 'A' + 10);
    }
    printf("%lld", decimal);

    return 0;
}
发布了183 篇原创文章 · 获赞 40 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/liulizhi1996/article/details/103789198