进制转换

来源:互联网 发布:阿里云上海机房地址 编辑:程序博客网 时间:2024/06/10 01:05

题目

描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。

输入

输入一个十六进制的数值字符串。

输出

输出该数值的十进制字符串。

样例输入

0xA

样例输出

10

思路

按照要求进行转换。。。。

代码

#include <iostream>#include <cstring>using namespace std;int main(){    string str;    cin>>str;    int len=str.size();    int sum=0,quan=1;    for(int i=len-1;i>1;i--)    {        if(str[i]>='0' &&str[i]<='9')        {            sum=sum+(str[i]-48)*quan;            quan=quan*16;        }        else if (str[i]>='A' &&str[i]<='F')        {            sum+=(str[i]-55)*quan;            quan*=16;        }        else if(str[i]>='a' &&str[i]<='f')        {            sum+=(str[i]-87)*quan;//'a'是97 去掉基数            quan*=16;        }    }    cout<<sum<<endl;}

思路2

利用C++自带的进制转换。

代码2

#include<iostream>using namespace std;int main(){    int val;    cin >> hex >> val;    cout << dec << val << endl;;    return 0;}
0 0
原创粉丝点击