|
|
&是按位与(双目运算符,需要2个操作数)( ^+ E7 \8 v% ?* \5 L! V$ g) g
|是按位或(双目运算符)
/ F+ n& n! t* @' E~是按位非(单目运算符)4 P6 S& I( F/ Y" f( Z
1&0=0, 0&1=0, 0&0=0, 1&1=14 z7 c0 i: \ \/ k7 s! I
1|0=1, 0|1=1, 0|0=0, 1|1=1
8 u' y. p1 g8 _& q- L! C# C6 S~1=0,~0=1
4 o5 _" `* e! La|=b等价于a=a|b;
- L7 F7 \) R2 K- t# g同理a&=b等价于a=a&b9 ~1 Y3 F6 }: a! f
所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART0
* q# g; o4 j7 [9 r, }6 ^6 drINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)
1 K n; d5 H$ |4 e按位运算就是运算的时候先将操作数换算成二进制数来进行计算
S5 _% b+ d0 } |% i& K. X0 R/ q s譬如3 & 5就是011 & 101=001
; P5 J& O2 d) s# x4 Q- ^+ Y1 m |
|