标题:帮忙看一下,怎么回事哦???
只看楼主
luoshun
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2005-11-17
 问题点数:0 回复次数:1 
帮忙看一下,怎么回事哦???

各位帮忙看一下!谢谢了!

各位帮忙看一下,虽然我是学VC的,但是我看楼主的意思就也先看看C语言了,这一第一章后面的习题,下面这两个题谁能给个解释:

#include<studio.h> #include <stdio.h>

main() main()

{ {

int i=6,j; int a=15,b=240;

j=(++i)+(i++); printf("%d\n",(a&b));

printf("j=%d\n",j); }

}

为什么结果是14而我觉得结果是13呢, 而上面这个题呢?我觉得更怪,因为他要求输出的结果是a&b,

到底那里错了呢?那先++i,那么i=7,然后 也就是说把a和b转换成二进制来相与呀,那么a的二进制就是

i++,那先调用原值呀,所以我觉得i++是6, a=15--------00001111;b=240---------11110000那这两个二进制

那么7+6应该是13呀,为什么标准答案是 相与的时候并没有相同为0的位呀,而位与的运算规则是:两个相与

14呢? 的二进制位只要有一个为0,则位与的结果为0,否则为1,那我觉得

这个答案应该是1呀,怎么会是0呢?

搜索更多相关主题的帖子: include C语言 
2005-12-22 17:17
spp509
Rank: 1
等 级:新手上路
威 望:1
帖 子:98
专家分:0
注 册:2005-11-23
得分:0 

i被赋值了吧

a=15--------00001111
b=240---------11110000
--------------------------------
00000000

屏蔽
0和一个数相"与",就将那个数去掉,成为0;
这是布尔代数吧?

[此贴子已经被作者于2005-12-22 19:06:46编辑过]


一听就懂,一看就会,一做就错……
2005-12-22 19:04



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




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

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