| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1396 人关注过本帖
标题:[求助]这样能输出二进制编程吗?
只看楼主 加入收藏
herotobe
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2006-5-3
收藏
 问题点数:0 回复次数:9 
[求助]这样能输出二进制编程吗?

main()
{ typedef struct {unsigned b:1;} BIT; /*位结构 */
union
{int t;
BIT bit[16];
} x;
int i;
x.t=0;
for(i=0;i<16;i++)
printf("%d",x.bit[i].b);

getch(); /* 请不要删除此行 */
}

这段程序怎么不能打印 t 的二进制编码?程序哪儿出问题了

搜索更多相关主题的帖子: 二进制 输出 
2006-05-08 16:48
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
不能

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-08 16:49
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
你这个打印的应该全部是16位中的最低位,我觉得,等高手.或者换个方法用'&'

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-08 16:54
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

原因很简单
因为
typedef struct {
unsigned b:1;
}BIT;
这样定义的时候,如果整个struct结构不足unsigned类型长度的要按照unsigned长度进行

证明:
int main(){
typedef struct {
unsigned b:1;
}BIT;
printf("%d\n",sizeof(BIT));
printf("%d\n",sizeof(unsigned));
return 0;
}
输出结果均为4

所以你那程序的BIT的实际长度不是1位,而是4个字节

PS,我用的是32位的C,如果是TC运行的话,应该是2而不是4


淘宝杜琨
2006-05-08 17:04
herotobe
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2006-5-3
收藏
得分:0 

我运行结果为:1
2

为什么不是 2
2

[此贴子已经被作者于2006-5-8 17:42:32编辑过]


After all,tomorrow is another day!!!!
2006-05-08 17:31
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

楼主用的魔鬼编译器吧


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-08 17:34
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
以下是引用herotobe在2006-5-8 17:31:00的发言:

我运行结果为:1
2

怎么可能,说明你的编译环境~


淘宝杜琨
2006-05-08 17:37
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
unsigned b:1;
是什么意思?

2006-05-08 20:08
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
b只占unsigned的第一个比特位

淘宝杜琨
2006-05-08 20:10
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
哦,还有这么个。

2006-05-08 20:37
快速回复:[求助]这样能输出二进制编程吗?
数据加载中...
 
   



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

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