十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,a[1000],p;
while(scanf("%d",&n)!=EOF)
{
p=0;
if(n==1)printf("1\n");
if(n==2)printf("10\n");
if(n>2)
{
for(i=0;i<1000;i++)
{
if(n==2) a[i]=0;
if(n==1) a[i]=1;
if(n>2)
{
a[i]=n%2;
n=n/2;
p++;
}
}
for(i=p;i>-1;i--)
printf("%d",a[i]);
printf("\n");
}
}
return 0;
}