【第22期】观点:IT 行业加班,到底有没有价值?

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


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

相关文章推荐

php 汉字转化成 二进制 十进制 十六进制 数字

&lt;?php /** * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 * 条件:本文件以及函数的输入参数应该用utf-8编码,不然要加函数转换 * 其实亦可轻易编写反向转换的函数,甚至不局限于汉字,奇怪为什么PHP没有现成函数 * ...

十进制转化成二进制八进制十六进制

#include  void main()  {   int choice,num;      int n,x[30]; int i,y[20];  int m,z[20]; printf("请输入你...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

汇编语言入门教程

1 本讲座以汇编初学者或对汇编一点也不了解的读者为对象,汇编高手不属于该范围,但强烈建议高手指导并增补、修改本文。 2 任何读者可以跟此贴,提出疑问,或解答其中的问题,但对于所有跟贴,水贴、内容有错、毫不相干贴将直接删除,有意义的贴可能会合并到下一讲的内容中,合并后也将删除,请跟贴者谅解。同时按学...
  • iaiai
  • iaiai
  • 2012-10-17 10:51
  • 904

十进制的负数转化成二进制,八进制,十六进制

以下都以-86,并且为8为二进制为例子: 对于+86不用说,其八位二进制表示为: (一)0 1 0 1 0 1 1 0 对于-86来说,需要将+86按位取反: (二)1 0 1 0 1...

vim 利用查找替换命令把所有的十进制数字转化成十六进制数字

vim 的查找替换功能相当强悍,这是在网上找到的一个功能:把所有的10进制数字,转化成16进制数字。 首先确定在 vim 的命令模式下,然后敲入以下命令: :%s//d/+//=printf(“%X”, submatch(0))/g <img src="http://j...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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