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;
    }
}


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

十进制转化二.四,八.十六进制(使用递归)!!!

十进制转化为二进制,这是
  • wretchedme
  • wretchedme
  • 2014年09月18日 19:48
  • 751

C语言将十六进制字符串转换成对应的十进制数字

#include #include #include /* 将大写字母转化成小写字母 */ int tolower(int c) {     if (c >= 'A' && c ...
  • Ifen_huang
  • Ifen_huang
  • 2017年09月28日 10:27
  • 281

面试题--位操作--将十进制数转换为16进制字符串输出

这是一道面试题: 编程实现将十进制数转换为16进制输出,不得使用任何已定义的库函数,比如string,math等。 char * get16String(long num) { int...
  • abilly
  • abilly
  • 2014年04月21日 16:57
  • 2763

十进制转化成十六进制i

Private Sub Command1_Click() Me.Font.Size = 50 Dim a As Integer Dim b As Integer Dim s As String Dim...
  • a18832625691
  • a18832625691
  • 2016年05月07日 17:18
  • 90

十进制转化成十六进制

/******************************************************************************/ //函数名: dec_to_Hex /...
  • liugang78
  • liugang78
  • 2008年06月18日 15:51
  • 631

十六进制转化成十进制

/******************************************************************************///函数名: hex_TO_dec//功...
  • liugang78
  • liugang78
  • 2008年06月18日 16:18
  • 1482

java 十六进制转化成十进制

问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 方法一:pub...
  • you18131371836
  • you18131371836
  • 2017年03月04日 21:43
  • 128

matlab中将十六进制转换为十进制方法

matlab中将十六进制转换为十进制方法a=textread('c:\a.txt','%s')';%以字符形式打开文件 alpha=hex2dec(a)'; %16进制转化为10进制数,存入alpha...
  • shihufeng
  • shihufeng
  • 2017年07月12日 14:53
  • 821

将一个十六进制字符串转换为十进制数值的问题|| 以及C++中string转换成char*|| c++文件按行输入

在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如: char *ptr="0x11"; int n=0; //我们想让n等于0x11,即17 通常我们在C中,想将一个字符串...
  • yukid2012
  • yukid2012
  • 2014年11月19日 17:40
  • 1859

各进制之间的转化方法

首先请注意:B(Binary)表示二进制,O(Octal)表示八进制,D(Decimal)或不加表示十进制,H(Hexadecimal)表示十六进制 二、八、十六进制转化为十进制的方法: 一、将二...
  • just_so_so_fnc
  • just_so_so_fnc
  • 2016年07月27日 19:02
  • 989
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:0060 十六进制转化成十进制
举报原因:
原因补充:

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