| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 877 人关注过本帖
标题:新手,编写了一个十进制转换二进制的代码?但是只有一部分答案正确,求解?
只看楼主 加入收藏
朱大哥
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:72
专家分:123
注 册:2015-1-16
收藏
得分:0 
数组大小用个32位就可以了
2015-11-06 15:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册: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
快速回复:新手,编写了一个十进制转换二进制的代码?但是只有一部分答案正确,求 ...
数据加载中...
 
   



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

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