输入:输入一个十六进制的数值字符串。 输出:输出该数值的十进制字符串。
#include <iostream>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
char a[100];
int sum=0,len=0;
while (gets(a))
{
len=strlen(a);
for (int i=len-1; i>=0; i--)
{
if (a[i]>='A' && a[i]<='F')
{
sum=(a[i]-55)*pow(16,len-i-1)+sum;
}
else if (a[i]>='0' && a[i]<='9')
{
sum=(a[i]-48)*pow(16,len-i-1)+sum;
}
}
cout<<sum<<endl;
sum=0;
}
return 0;
}
刚开始写的代码一直不通过,发现是不满足连续输入的问题,后面用了一个while循环,一下就好了。这里有一个很重要的问题就是输入的是字符串,在利用进制转换的时候需要将每一个字符都转换成十进制的数,这一点需要注意一下。
本文介绍了一种使用C++实现的十六进制到十进制数值转换的方法。通过解析输入的十六进制字符串,将每个字符转换为相应的十进制数值并累加,最终输出转换后的十进制数值。代码中详细展示了如何处理十六进制字符(包括A-F)到十进制的转换过程。
3393

被折叠的 条评论
为什么被折叠?



