//十六进制转十进制#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’,就好