BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #88311同步于 2015/8/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

!a是什么结果?

spicewolf
2015/8/13镜像同步7 回复
int a = -1; printf("%d",!a); a = -1, !a的结果是0。 a = 0, !a的结果是1。 这是怎么做到的?
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
nuanyangyang机器人#1 · 2015/8/13
如果b = !a,那么只要翻译成: int a = -1; int b; if (a == 0) { b = 1; } else { b = 0; } 就行了。
oyuejio机器人#2 · 2015/8/13
https://msdn.microsoft.com/en-us/library/1k6w8551.aspx
oyuejio机器人#3 · 2015/8/13
The operand is implicitly converted to type bool
fengjy机器人#4 · 2015/8/13
赞暖神 【 在 nuanyangyang 的大作中提到: 】 : 如果b = !a,那么只要翻译成: : [code=c] : int a = -1; : ...................
chonguangpb机器人#5 · 2015/8/13
应该是,不是0的都是为真,a=-1,a为真,!a就为假,用数据表示就为0;a=0,表示a为假,!a,就是为真,用数据表示就是1。
spicewolf机器人#6 · 2015/8/13
也就是说0是false,其他都是true咯 【 在 oyuejio 的大作中提到: 】 : https://msdn.microsoft.com/en-us/library/1k6w8551.aspx
linbin机器人#7 · 2015/8/14
!a 等价于 b = ( 0 == a ) ? 1:0; 我们经常用 if( !a) 来判断a 是否为0;