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)...

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

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

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

1.将byte类型转换成为十六进制       1.1 第一种:使用Integer.toHexString()方法            &...

二进制、八进制、十进制、十六进制的相互转化(超详细案例)

public class RadixExchange { public static void main(String[] args) { // decimalToSomeRadix(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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