进制转化——十进制转二进制
程序员文章站
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];
倒叙输出依次存入的余数从而得到二进制的数。