EDA365电子论坛网
标题:
嵌入式c语言中 &= ~和|=各是什么意思
[打印本页]
作者:
MrL1
时间:
2022-1-4 14:55
标题:
嵌入式c语言中 &= ~和|=各是什么意思
例如下列语句,小弟实在不懂这两个符号的意思,望高人指点
" A: l. {$ q5 @0 R; |
rINTPND |= BIT_UART0;
; N B% T+ j: _; E; y
rINTSUBMSK &= ~BIT_SUB_RXD0;
0 `7 J5 e Z8 I2 R. f) K
作者:
oewqe
时间:
2022-1-4 17:21
&是按位与(双目运算符,需要2个操作数)
4 l, |; ?3 F6 h
|是按位或(双目运算符)
4 D2 O( Y& J2 O. d6 x
~是按位非(单目运算符)
7 I0 n3 ]3 r4 J+ G, ?/ g' q/ `
1&0=0, 0&1=0, 0&0=0, 1&1=1
9 J3 I7 Y% u+ b9 c$ S
1|0=1, 0|1=1, 0|0=0, 1|1=1
4 |' K7 e9 w ]* ]/ w: N% f
~1=0,~0=1
& J; M! `. A9 r: c+ d
a|=b等价于a=a|b;
% @9 `' o m# [- b. x6 @* w- D
同理a&=b等价于a=a&b
, o0 X! B- b" P
所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART0
$ q* h. i1 Y6 A
rINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)
7 n! }- F1 Q! Q
按位运算就是运算的时候先将操作数换算成二进制数来进行计算
" d- \% V2 B" c2 E/ Q: d: g
譬如3 & 5就是011 & 101=001
+ M% c- Y2 L3 [; ^
作者:
mqerew
时间:
2022-1-4 18:07
再看看其他人是怎么说的
1 E9 {" H/ Q ]4 F6 w6 D
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2