|
&是按位与(双目运算符,需要2个操作数)
" V, \" h' m$ m! y9 C& I|是按位或(双目运算符)
% d& H# o2 u* |0 [' |~是按位非(单目运算符)
/ X, }/ `- i# K% |1&0=0, 0&1=0, 0&0=0, 1&1=1
" i$ }0 I# Y* Q: l+ t: H$ y1|0=1, 0|1=1, 0|0=0, 1|1=1' P( Z' S$ V; b \2 f/ d q5 T, Z& C
~1=0,~0=1
" {! ~$ m2 E% Y6 N; ?# X h+ N3 Oa|=b等价于a=a|b;# ]6 \; b; T2 P: f2 L) v4 c! L
同理a&=b等价于a=a&b v- f& _* K7 i, o- b' h0 i" t
所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART0
) j" |5 W3 l0 jrINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)- P, j3 b* u+ Q+ W; V
按位运算就是运算的时候先将操作数换算成二进制数来进行计算
* `7 R, Q3 D! f# m0 D0 H: M) O, N譬如3 & 5就是011 & 101=0017 Z# v |( ~/ h9 _( U; E# v% W
|
|