//十六進制轉十進制 #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