各位帮忙看一下!谢谢了!
各位帮忙看一下,虽然我是学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呢?