1.前文(介绍)

2.正文

1.前文(介绍)

二进制是电脑专用的,我应该在c++第一课(基础c)-CSDN博客里讲过,只不过今天要学习的是进制转换(其实我是怕转换错误才写的)

2.正文

好了好了:

#include<bits/stdc++.h>
using namespace std;
int a[10005];
int main()
{
	int n,cnt=0;//余数的个数 
	cin>>n;
	for(int i=n;i>=1;i=i/2)//几进制就除以几 
	{
		cnt++;
		a[cnt]=i%2;
	}
	for(int i=cnt;i>=1;i--)//逆序输出 
	{
		cout<<a[i]<<" ";
	}
	return 0;
}

这是十转二进制的代码

这是一个例子:

如果你输入6

i=6

6%2=    0

6/2=3

3%2=    1

3/2=1.5=1(只能看小)

1%2=    1

(得反着输出,不然开头输出0可是不行的)

然后进入到第二个for循环

110(最终结果)

懂了?

十转八进制也一样

就是第一个for循环的第三个条件改成n/8

然后里面的a[cnt]=i%2改成a[cnt]=i%8

十转n进制也一样(当然,如果第二个你输入的数字大于你输入的第一个数字,就直接输出第一个数字了)

把上面的十转八进制的的代码改成k(你第二个输入的代码)

哎呀,这样说实在是太~听不懂了

直接上代码

#include<bits/stdc++.h>
using namespace std;
int a[10005];
int main()
{
	int n,cnt=0,k;//余数的个数 
	cin>>n>>k;
	for(int i=n;i>=1;i=i/k)//几进制就除以几 
	{
		cnt++;
		a[cnt]=i%k;
	}
	for(int i=cnt;i>=1;i--)//逆序输出 
	{
		cout<<a[i];
	}
	return 0;
}

这样就可以了

(逃!)

新手小白(基础B)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐