zoukankan      html  css  js  c++  java
  • "蓝桥杯“基础练习: 十六进制转十进制

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


    心得:

    本题也有陷阱,也是出在数据范围上,不超过8位的十六进制数,FFFFFFFF这个数就不行,所以计算16次方的那个函数返回值要用long long类型的。

    代码:

    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    long long mul(int n)//要用long long类型
    {
        long long s=1;
        for(int i=1;i<=n;i++)
            s*=16;
        return s;
    }
    
    int main()
    {
        long long a=0;
        string str;
        cin>>str;
        reverse(str.begin(),str.end());
        for(int i=0;i<str.length();++i)
        {
            int temp;
            if(str[i]>='0'&&str[i]<='9')
                temp=str[i]-'0';
            else
                temp=str[i]-55;
            a+=(temp*mul(i));
        }
        cout<<a;
        return 0;
    }
    

    运行:


  • 相关阅读:
    原生小程序音频播放
    Vue定义全局过滤器filter
    系统扩展性之引入外部包
    oracle update join
    OAuth2
    oracle pl/sql
    MySQL同步工具otter的使用介绍(一)
    python批量安装apk
    mac brew安装redis
    antd 修改Modal的底部按钮颜色
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697805.html
Copyright © 2011-2022 走看看