我以前在学C的进制转换,10以内的想必应该都会写吧,就是不停%x,/x的,但是10以上的就要复杂些。
核心部分:
int t=0,ans[1010]={0};
t++;
a[t]=n%x;
n/=x;
我在网上查了16转10,发现都很复杂。
现在我写了一下更简洁的代码:
16转10:
#include <bits/stdc++.h>
using namespace std;
int a[200];
int main(){
string n;
int sum=0,q=1;
cin>>n;
for(int i='0';i<='9';i++)a[i]=i-'0';
for(int i='A';i<='F';i++)a[i]=i-55;
for(int i=n.length()-1;i>=0;i--){
sum+=a[n[i]]*q;
q=q*16;
}
cout<<sum;
return 0;
}
10转16:
#include <bits/stdc++.h>
using namespace std;
int a[1010];
string s=“0123456789ABCDEF”;
int main(){
long long n,t=0;
cin>>n;
while(n!=0){
t++;
a[t]=n%16;
n/=16;
}
for(int i=t;i>=1;i--){
cout<<s[a[i]];
}
return 0;
}