#include<bits/stdc++.h>
using namespace std;
//2-36进制转为 10进制
int Atoi(string s,int radix) //s是给定的radix进制字符串
{
int ans=0;
for(int i=0;i<s.size();i++)
{
char t=s[i];
if(t>='0'&&t<='9') ans=ans*radix+t-'0';
else ans=ans*radix+t-'a'+10;
}
return ans;
}
//10进制转为2-36进制
string intToA(int n,int radix) //n是待转数字,radix是指定的进制
{
string ans="";
do{
int t=n%radix;
if(t>=0&&t<=9) ans+=t+'0';
else ans+=t-10+'A';
n/=radix;
}while(n!=0); //使用do{}while()以防止输入为0的情况
reverse(ans.begin(),ans.end());
return ans;
}
int main()
{
cout<<intToA(154,16)<<endl;
cout<<Atoi(intToA(154,16),16);
return 0;
}
进制转换
最新推荐文章于 2022-04-26 11:16:23 发布