发新帖我要提问
12
返回列表
打印

C语言的小问题,一直没搞懂

[复制链接]
楼主: meishizhaoshi
手机看帖
扫描二维码
随时随地手机跟帖
21
谈的元| | 2012-9-11 00:12 | 只看该作者 回帖奖励 |倒序浏览
if((P1IFG&0x0002)==0x0002)

& 符号就是按位与,你也可以理解为乘,0X0002有很多位位0,那么P1IFG对应位与0与的结果为0,与1与的 结果为P1IFG的对应位,P1IFG&0x0002的 结果就是P1IFG次低位保留,其他位都被清0了,
假设P1IFG ==0B 1101 1101;
  0x0002 ==0B  0000 0010;与的结果为0000 0000
假设P1IFG ==0B 1101 1111;
  0x0002 ==0B  0000 0010;与的结果为0000 0010

要保留某寄存器的 某位,就用与运算,保留位与1与,不保留位与0与;


初学最容易搞错优先级别,加括号吧。

使用特权

评论回复
22
梅花望青竹| | 2012-9-11 10:32 | 只看该作者
第二位为高就可以了

使用特权

评论回复
23
eyesmall| | 2012-9-11 13:39 | 只看该作者
18# lxyppc 我对这顺序还真有点乱,要养成加括号的好习惯才行了  惭愧

使用特权

评论回复
24
张昊扁头| | 2012-9-11 14:48 | 只看该作者
小菜鸟飘过

使用特权

评论回复
25
credit| | 2012-9-20 14:08 | 只看该作者
学习学习,偶的c语言没学好。。

使用特权

评论回复
26
qqlvjh| | 2012-9-20 16:34 | 只看该作者
if((P1IFG&0x0002)!=0)


这样理解

使用特权

评论回复
27
wood_ic| | 2012-9-20 17:27 | 只看该作者
C语言早就忘了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则