前言
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。
基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。
位权是指,进位制中每一固定位置对应的单位值。
一、十进制转换成任意进制
使用短除法即可
x是十进制的数,b是要转换成什么进制。
//短除法,实现十进制的数,向任意进制转换
string trans(int x,int b)
{
string r;
int y;
while(x)
{
y=x%b;
if(y>=10)
{
r+=(y-10)+'A';
}
else
{
r+=y+'0';
}
x/=b;
}
reverse(r.begin(),r.end());
return r;
}
二、任意进制转换成十进制
代码如下:
x任意进制的一个数,b是x是什么进制的数
int transInt(string x,int b)
{
int r=0;
int len=x.size()-1;
for(int i=0;i<=len;i++)
{
r+=(x[len-i]-'0')*pow(b,i);
}
return r;
}