目录
进制转换之间的关系
十进制转换为二进制(求二进制)
二进制转换成十进制(求十进制)
二进制转换为九进制
进制转换之间的关系
任意进制<--->十进制<--->任意进制
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;
}
二进制转换为九进制
可以先将二进制转换成十进制得到一个数,然后再将十进制转换成九进制。
更多推荐
进制转换详解
发布评论