标题:新手,编写了一个十进制转换二进制的代码?但是只有一部分答案正确,求解?
只看楼主
朱大哥
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:72
专家分:123
注 册:2015-1-16
得分:0 
数组大小用个32位就可以了
2015-11-06 15:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 11楼 朱大哥
不是32呢?尽量避开C标准没有规定的行为
程序代码:
#include <stdio.h>

int main( void )
{
    const unsigned n = 4000000000u;

    for( unsigned m=1u<<(sizeof(m)*8-1); m; m>>=1u )
        printf( "%d", (m&n)!=0 );

    return 0;
}

2015-11-06 15:46
朱大哥
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:72
专家分:123
注 册:2015-1-16
得分:0 
回复 12楼 rjsp
你这C 语法弄的很通透呀  下面的代码 改写下 写成比较精简 好看的
我语法不好

#include <stdio.h>
int main()
{
    int n,m=1,i=1;
    scanf("%d",&n);
    for(;m>0;m<<=1)   i++;//算INT是几个Bit位  把最高位置为1
        m<<=i;
     while(m){
        if(m&n)
            printf("1");
        else
            printf("0");
        m>>=1;
    }

}



[此贴子已经被作者于2015-11-6 16:02编辑过]

2015-11-06 15:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458566-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.127789 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved