OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5424|回复: 6

while(!A)

[复制链接]

76

主题

355

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2012-9-19
在线时间
5 小时
发表于 2014-5-15 11:08:32 | 显示全部楼层 |阅读模式
5金钱
我有点疑惑。if(!A) 也就是说 if(A==0)时候就执行;
那么为啥while(A) === while(A!=0)时候就执行也就是while(1);执行;
可为啥while(!A) 就不可以认为 是:while(A==0);时候执行???却必须这样认为:while(!a) ====(a=0时,取反成a=1)造成while(1);执行??????

最佳答案

具有资深STM32点灯技术,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-15 11:08:33 | 显示全部楼层
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-5-15 11:41:55 | 显示全部楼层
不明白楼主是要表达什么意思额。。 里面只要逻辑为真就行了啊。A==0 如果A的确是0 那么就是逻辑为真 就相当于while(1)了。
不用谢了……
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-15 12:47:28 | 显示全部楼层
C基础,要复习一下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-5-15
在线时间
0 小时
发表于 2014-5-15 14:05:09 | 显示全部楼层
你好,不用管这么多,你只要认定一点就是()里面的为真就执行。不是不是0的问题,而是真假的问题。
回复

使用道具 举报

76

主题

355

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2012-9-19
在线时间
5 小时
 楼主| 发表于 2014-5-16 08:09:34 | 显示全部楼层
回复【5楼】CXP_ARM:
---------------------------------
是0 和1 的问题。 1代表真的  0 代表假的。。 A==0 如果A =0 判断成立。这个也为真。如果说这儿来个;~A代表啥?代表的是 while((~A)!=0)时候如果成立就执行{}; 我说的没错吧? 当A=0 取反为0; 0不等于0那么久不执行
具有资深STM32点灯技术,
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2014-5-16 09:00:02 | 显示全部楼层
回复【6楼】敌害:
---------------------------------
()內的應該理解成非0跟0的關係,非0就代表邏輯1(成立),0就代表邏輯0(不成立)。

~是對變數的每個bit取反,!是邏輯反向

假設A只有4個bit,A=5 (0101b) 則~A=10 (1010b) ,!A=0(因為A為非零(邏輯1),所以加上!後變成邏輯0)。

(~A)!=0,只要A的每個bit都是1的話就不成立。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 22:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表