0060 十六进制转化成十进制

原创 2016年08月30日 21:24:37

来自牛客上华为机试题:

输入:0x76E

输出:1902

并要求能循环多次输入,输出多个对应结果。

以下是自己的原创答案:

#include<iostream>
#include<string>
#include<map>

using namespace std;

int main()
{
    string str;
    while(cin>>str)
    {
  	map<char,int> letterToNum;
    letterToNum['A']=10;
    letterToNum['B']=11;
    letterToNum['C']=12;
    letterToNum['D']=13;
    letterToNum['E']=14;
    letterToNum['F']=15;
    
    int len=str.size();
    long long sum=0;
    
    for(int i=2;i<len;i++)
    {
        if(str[i]>='A'&&str[i]<='F')
            sum = sum*16 +letterToNum[str[i]];
        else
            sum = sum*16 + (str[i]-'0');
    }
    cout<<sum<<endl;
    }
    return 0;
}


更经典的其他回答:

#include <iostream>
using namespace std;

int main()
{
    int a;
    while(cin>>hex>>a){
    cout<<a<<endl;
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

用十进制计算30!(30的阶乘),将结果转化成3进制进行表示的话,该进制下的结果末尾会有多少个0?

如何是小阶乘的话,可以使用这个算法:#include int main() { int n; int i; int sum; printf("请输入阶乘:"); scanf("%d",&n)...

【c语言】多种方法:将十进制数转化成二进制数,计算其中1的个数

以下是我学到的三种方法,如果大家还有更好的方法,可以讨论交流。 首先,我们得知道十进制怎样转化成二进制,如下图。 得到10的二进制数为1010 那么我们会发现,10%2是判断二进制数的最后一位是0还...

Java十进制转化成二进制方法

十进制转二进制的除二取余倒序法的逻辑依据是什么?可以用十进制来类比:一个数123456789用除十取余求它的十进制表达式 第一次除以10,商12345678 余9, 第二次除以10,商123456...

java byte[] 型 转化成十六进制输出

1.将byte类型转换成为十六进制       1.1 第一种:使用Integer.toHexString()方法                 byte a = 18; System.out.p...
  • zyh5540
  • zyh5540
  • 2013年06月14日 11:07
  • 3162

二进制,八进制,十进制,十六进制互相转化的C语言源代码

// first.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include void D...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:0060 十六进制转化成十进制
举报原因:
原因补充:

(最多只允许输入30个字)