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