目录

进制转换之间的关系

十进制转换为二进制(求二进制)

二进制转换成十进制(求十进制)

二进制转换为九进制



进制转换之间的关系

任意进制<--->十进制<--->任意进制

1.任意进制转为十进制

2.十进制转为任意进制

3.任意进制转为任意进制(例如二进制转为九进制)

十进制转换为二进制(求二进制)

十进制转化为二进制常用的方法是辗转相除法,方法如下:

1011=1*2^3+0*2^2+1*2+1*2^0

左边表示二进制,右边计算得出来的数为十进制的数,所有的进制都可以用这种方法表示

十进制转为二进制(求二进制):

#include<iostream>
using namespace std;
int main()
{
	int n,len;
	int num[15];
	while(scanf("%d",&n)!=EOF)
	{
		len=0;
		while(n!=0)//循环结束登条件,当商为零的时候结束 
		{
			num[len++] = n%2;//将每次对2求余得到的数字存到数组里面 
			n/=2;//n=n/2 更新n,需要得到除以二之后的数 
		}
		while(len--)//用len来输出,因为每进行一次除法,len就加一,所以输出的时候刚好到len为0的时候输出完 
		{
			printf("%d",num[len]);
		}
		printf("\n");
	}
	return 0;
 } 

二进制转换成十进制(求十进制):

经过1011=1*2^3+0*2^2+1*2+1*2^0这个式子可以发现规律,从而得到ans=asn*2+s[i]

#include<iostream>
using namespace std;
int main()
{
	string s;
	cin>>s;
	int ans=0; 
	for(int i=0;i<s.length();i++)
	{
		ans=ans*2+s[i]-'0';//如果其他进制只需修改2即可 
	}
	cout<<ans<<endl;
	return 0;
} 

二进制转换为九进制

可以先将二进制转换成十进制得到一个数,然后再将十进制转换成九进制。 

更多推荐

进制转换详解