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

[复制链接]
5057|26
谈的元 发表于 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与;


初学最容易搞错优先级别,加括号吧。
梅花望青竹 发表于 2012-9-11 10:32 | 显示全部楼层
第二位为高就可以了
eyesmall 发表于 2012-9-11 13:39 | 显示全部楼层
18# lxyppc 我对这顺序还真有点乱,要养成加括号的好习惯才行了  惭愧
张昊扁头 发表于 2012-9-11 14:48 | 显示全部楼层
小菜鸟飘过
credit 发表于 2012-9-20 14:08 | 显示全部楼层
学习学习,偶的c语言没学好。。
qqlvjh 发表于 2012-9-20 16:34 | 显示全部楼层
if((P1IFG&0x0002)!=0)


这样理解
wood_ic 发表于 2012-9-20 17:27 | 显示全部楼层
C语言早就忘了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部