|
|
&是按位与(双目运算符,需要2个操作数) h+ K1 ?; X: r/ z
|是按位或(双目运算符), {) n6 v4 J; L# K ^. m% Z
~是按位非(单目运算符)
2 N! d) h9 ~1 r1 A" p; O: X2 S* Z3 l1&0=0, 0&1=0, 0&0=0, 1&1=14 d# Y6 ^/ q/ `4 K
1|0=1, 0|1=1, 0|0=0, 1|1=1
c5 a0 @/ G0 N3 P. m& R* X~1=0,~0=1
2 Y/ h# I, y. e. v/ D' M1 ba|=b等价于a=a|b;
) g9 T) ]& _9 F9 Y同理a&=b等价于a=a&b( g$ k1 g: L# k8 ?* e
所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART0# Q0 Z' w* J4 ~/ S$ O7 y
rINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)# j" Q* { |; [& W; V' _/ E/ ^
按位运算就是运算的时候先将操作数换算成二进制数来进行计算
: R- j" ^+ p& p0 K譬如3 & 5就是011 & 101=001' k' Z6 r7 }/ m% r
|
|