1~32进制
十进制转n进制
循环写法
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
void f(long long x,long long n){
string t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string s="";
while(x){
s=t[x%n]+s;
x/=n;
}
cout<<s;
}//将十进制数x转换为n进制数s
void ini(){
long long x,n;
cin>>x>>n;
if(x==0)cout<<0;
else f(x,n);
}
int main(){
ini();
return 0;
}
递归写法
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int x,m;
string t="0123456789ABCDEF";
void f(int x,int n){
if(x==0)return ;
f(x/n,n);
cout<<t[x%n];
}//将十进制数x转换为n进制数
int main(){
cin>>x>>m;
if(x==0)cout<<0;
else f(x,m);
return 0;
}
n进制转十进制
循环写法
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
void f(string s,int n){
long long x=0;
for(int i=s.size()-1;i>=0;i--){
if(s[i]<='9')x+=(s[i]-'0')*pow(n,s.size()-1-i);
else x+=(s[i]-'A'+10)*pow(n,s.size()-1-i);
}
cout<<x;
}//将n进制数s转换为十进制数x
void ini(){
string s;
int n;
cin>>s>>n;
f(s,n);
}
int main(){
ini();
return 0;
}
标签:转换,进制,int,long,include,string,cout
From: https://www.cnblogs.com/hnzzlxs01/p/16655930.html