//十六進制轉十進制
#include<iostream>
using namespace std;
#include<string>
#include<cmath>
int main()
{
char a[100];
cin>>a;
int l=strlen(a);
long long num=0;//注意是不超過8位的正的十六進制數字符串,因此數較大,應設爲long long
for(int i=0; i<l; i++)
{
if(a[i]>='0'&&a[i]<='9')
num+=(a[i]-'0')*pow(16,l-1-i);
else
num+=(a[i]-'A'+10)*pow(16,l-1-i);
}
cout<<num;
return 0;
}
//十進制轉十六進制
#include<iostream>
using namespace std;
#include<cstdlib>
int main()
{
long long n;//防止數過大
int m;
int k = 0;
char str[100];
cin >> n;
if(n==0)
{
cout<<'0';
}
while (n>0)
{
m = n % 16;
n /= 16;
//轉換爲字符串
if (m > 9)
str[k++] = 'A' + m-10;
else
str[k++] = '0' + m;
}
for (int i = k - 1; i >= 0; i--)
{
cout << str[i];
}
return 0;
}
總結:進行轉換時,主要是字符與數字之間的轉換,用好‘A’,‘0’,就好