标题 :十六进制转十进制
题目:
输入一个十六进制数,输出相应的十进制数。
十六进制的基数是0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。
输入:
输入有若干行,每行表示一个十六进制的数。
输出:
输出每个十六进制数对应的十进制数。
样例输入:
a1
1a
110
样例输出:
161
26
272
解决问题的代码如下:
应该会有些不足,在这个问题上困了还久,最后都把自己弄迷糊了,幸好做了出来。现在分享给大家,仅供参考。开心。
#include <iostream>
using namespace std;
#include <string>
#include <math.h>
int main()
{
string WW;
int i=1,S[50];
int SS=0;
while(cin>>WW)
{
const char *W=WW.c_str();
for(;i<=WW.length();W++,i++)
{
if(*W>='0'&&*W<='9')
S[i]=*W-'0';
else if(*W>='a'&&*W<='f')
S[i]=*W-'a'+10;
if(i<WW.length()) SS+=S[i]*pow(16,WW.length()-i);
else SS+=S[i];
}
cout<<SS<<endl;
i=1;SS=0;
}
}
DEV运行结果如下:
a1
161
1a
26
110
272
^Z
--------------------------------
Process exited with return value 0
Press any key to continue . . .
参考的链接如下:
string 与char* char[]区别及转化(作者:哈哈哇呀)
链接: https://blog.csdn.net/Mirchell1/article/details/87361483?utm_source=po_vip.