首页
社区
课程
招聘
[旧帖] [求助]求教,C语言表达式出乎意外 0.00雪花
发表于: 2011-12-20 13:25 1553

[旧帖] [求助]求教,C语言表达式出乎意外 0.00雪花

2011-12-20 13:25
1553
!(dwMask & 1);     // 表达式一
!dwMask              // 表达式二

表达式一与表达式二的值

居然可以不同::3

求达人指教指教。。。。。。。。。3Q

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 49
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
不一样啊?感觉效果一样啊..
2011-12-20 13:40
0
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
本來就不一樣阿0.0,為什麼會一樣==。
2011-12-20 13:45
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
说说,为什么不一样啊?
2011-12-20 13:52
0
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
dwMask = 2  的时候结果就不一样吧
!(10 & 01) // 10 & 01 等于零。!之后 就变成了1
!dwMask  // !之后就变成了0
这个是我的理解  没有写代码看结果  也不知道对不对
2011-12-20 14:01
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有相同的时候,有不同的时候,

还有不是 & 01,

是& 1         

10 & 1 == 10

可以试试下面的代码,值是不同的

dwMask = 0x03E0;

for(int i=0; !(dwMask & 1); i++)

      dwMask >>=1;
2011-12-20 14:05
0
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我这么写是为了看的更明显点
2011-12-20 14:08
0
雪    币: 1760
活跃值: (1616)
能力值: ( LV12,RANK:222 )
在线值:
发帖
回帖
粉丝
8
dwMask==NULL行不行啊
2011-12-20 14:10
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pak
9
怎么可能一样!
dwMask & 1 是取dwMask的最低位,表达式的值完全取决于dwMask的最低的1位。
dwMask && 1 若是这样就完全一样!
&是按位与,把 & 和 && 区别搞清楚就会自然明了~!
2011-12-20 14:10
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢,想当然成&FFFF了!大哥说的对哈,我蒙了
呵呵看书时间长了,晕头了哦
2011-12-20 14:16
0
雪    币: 292
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
就是这样的

第一个是对dwMask  与1执行按位与之后再执行逻辑非操作。
第二个是直接对dwMask执行逻辑非操作。
2011-12-20 15:14
0
游客
登录 | 注册 方可回帖
返回
//