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

1039 十进制整数转二进制

程序员文章站 2022-07-15 09:33:47
...

Description

给出一个十进制的非负整数x,x<=216,把它转换成二进制数输出。

Input

输入为多行,每行一个整数x,至读入EOF结束。

Output

每行输出x对应的二进制数值。

Sample Input

0
1
3
33
65535

Sample Output

0
1
11
100001
1111111111111111

HINT

本题有多种解法:可以用循环迭代对2的除法和取余操作,不过处理的顺序与输出顺序相反,需要利用数组存储;用取对数或从大到小减去2的整数次幂的方法计算与输出顺序是相同的;也可以用printf()把十进制的数值处理成十六进制,然后1位十六进制转4位二进制;也可以用位运算处理。

Append Code

#include <stdio.h>
int main()
{
    int x,y,c,i,j;
    int ch[65537];
    while(scanf("%d",&x)!=EOF)
    {
        i=0;
        if(x==0)
            printf("0");
        else if(x==1)
            printf("1");
        else
        {
            while(1)
            {
                y=x%2;
                c=x/2;
                ch[i]=y;
                i++;
                if(c==0)
                    break;
                else
                    x=c;
            }
            for(j=i-1;j>=0;j--)
                printf("%d",ch[j]);
        }
        printf("\n");
    }
    return 0;
}