专栏首页开心的学习之路基础练习 十六进制转十进制

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

问题描述

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

样例输入

FFFF

样例输出

65535 思路:         设十六进制位数为n,十六进制的第i位乘以10的n - i次方。使用函数pow比较简单。pow函数包含在头文件cmath(C中是math.h )中,c++中提供很多种pow的重载形式,T pow( T x,T y )表示x的y次方,T可以为int、double、float、long double。

#include<cstdio>
#include<cmath>
#include<cstring>

int main()
{
    int len, i, t;
    long long int N = 0;
    char w[8];
    gets(w);
    len = strlen(w);
    for(i = 0; w[i] != '\0'; i++)
    {
        switch(w[i])
        {
            case'A': t = 10; break;
            case'B': t = 11; break;
            case'C': t = 12; break;
            case'D': t = 13; break;
            case'E': t = 14; break;
            case'F': t = 15; break;
            default:t = w[i] - '0'; break;
        }
        N = N + t * pow(16, len - 1 - i);
    } 
    printf("%I64d\n", N);
    return 0;
} 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基础练习 阶乘计算

      n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推...

    刘开心_1266679
  • 基础练习 矩阵乘法

      给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A =   1 2   3 4   A的2次幂   7 10   15 2...

    刘开心_1266679
  • 最大公约数和最小公倍数

           辗转相除法(欧几里得算法)算是求最大公约数最简单高效的算法了,这几行代码用最简洁的方式写了这个算法,值得牢牢记住:

    刘开心_1266679
  • 蓝桥杯题库基础练习:进制转换

    Zoctopus
  • 【POJ 1112】Team Them Up!(二分图染色+DP)

    Your task is to divide a number of persons into two teams, in such a way, that: ...

    饶文津
  • hdu1007

    @坤的
  • 【漆学军】EA编程速成教程(2)第一个程序:下单

    大家好,我是漆天编程团队的漆学军,也是MT4专家论坛的创办者,下面是我为大家准备的《EA编程速成教程》第二课。

    漆学军
  • 【每天一道编程系列-2018.3.7】(Ans)

      Given an array S of n integers, find three integers in S such that the sum is ...

    yesr
  • Python基础 PyQt5(一)

    pyqt5是一套Python绑定Digia QT5应用的框架。它可用于Python 3。(小编所有的教程都是基于python3的,如果有需要了解python2的...

    我被狗咬了
  • hdu----(1257)最少拦截系统(dp/LIS)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja...

    Gxjun

扫码关注云+社区

领取腾讯云代金券