找回密码
 注册
关于网站域名变更的通知
查看: 268|回复: 2
打印 上一主题 下一主题

嵌入式c语言中 &= ~和|=各是什么意思

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-1-4 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
例如下列语句,小弟实在不懂这两个符号的意思,望高人指点
' t2 B3 `/ w! JrINTPND |= BIT_UART0;. ?. z( K. m5 e" r- D( r, O
rINTSUBMSK &= ~BIT_SUB_RXD0;
# J4 h& O  C' v

该用户从未签到

2#
发表于 2022-1-4 17:21 | 只看该作者
&是按位与(双目运算符,需要2个操作数)& z, `3 V  }2 w7 v7 v$ @2 e$ V- U
|是按位或(双目运算符), g6 ~% i3 o8 R& i2 l% ~& F/ h( m- L* Q
~是按位非(单目运算符)2 p9 }! ?  T+ q! [! F* |
1&0=0, 0&1=0, 0&0=0, 1&1=1
' P: I( E$ ?+ v8 v2 F7 e) k; {6 g1|0=1, 0|1=1, 0|0=0, 1|1=1
# K% b  f1 U2 Q! Y~1=0,~0=1
1 i5 y1 \6 f& X0 F7 h# F+ Ta|=b等价于a=a|b;
( g  L' R; n- b1 |! q1 e  f同理a&=b等价于a=a&b
9 O2 W+ }8 z, ~: m$ M所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART09 a3 c& O0 M; }8 `
rINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)
* q3 \9 ~- d  ^! K- |$ q" U按位运算就是运算的时候先将操作数换算成二进制数来进行计算
0 ]- D2 i# O+ b/ k4 T& Q譬如3 & 5就是011 & 101=001

# {7 O" o( v2 k( f' K5 E! H9 _

该用户从未签到

3#
发表于 2022-1-4 18:07 | 只看该作者
再看看其他人是怎么说的3 N. u6 P3 t7 X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-22 11:10 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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