欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

进制转化——十进制转二进制

程序员文章站 2022-07-15 09:34:04
...

我们现在来说一下进制转化的问题,以十进制转二进制为例。

在数学里我们算一个十进制数的二进制数,比如11的二进制数是1011,这是怎么得到的呢?

11/2=5余1;

5/2=2余1;

2/2=1余0;

1/2=0余1;

当除法结果为0时结束除法,我们写成二进制数的时候是从余数从下到上写即1011而不是1101。

说明我们要的余数最后输出的顺序是与得到的顺序相反的,即倒序输出。

**思路:将得到余数依次存入数组中,最后把数组中存的数倒序输出就可以得到。

#include<iostream>
using namespace std;
int main(){
	int a[50];
	int n,i; 
	cout<<"输入想要转化的十进制数字为 "; 
	cin>>n;
	while(n!=0)
	{
		a[i]=n%2;
		n=n/2;
		i++;
	}
	for(int j=i-1;j>=0;j--)
	cout<<a[j];
	return 0;
} 

其中重点说明一下while循环阶段

	while(n!=0)
	{
		a[i]=n%2;
		n=n/2;
		i++;
	}

**我直接固定了数组的大小,定义了i,不管i是多少都可以使用,这个不干扰,i不从0开始也无所谓。我们当除法结果为0时结束除法,即此时n=0时结束。

for(int j=i-1;j>=0;j--)
	cout<<a[j];

倒叙输出依次存入的余数从而得到二进制的数。

相关标签: c++