十进制转二进制

Problem F: 十进制整数转二进制
Time Limit: 1 Sec Memory Limit: 2 MB
Submit: 9127 Solved: 5212
[Submit][Status][Web Board]
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位二进制;也可以用位运算处理。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a [100000],n,i=0,j=0,x;//数组开大一些
    while(scanf("%d",&n)!=EOF)
    {if(n==0)
    printf("0\n");
    else
    {
        for(i=0;n!=0;)
        {
            a[i]=n%2;
            n=n/2;
            i++;
        }

       for(i=i-1;i>=0;i--)
        {
            printf("%d",a[i]);
        }
            printf("\n");
    }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值