|
&是按位与(双目运算符,需要2个操作数)
4 b! w/ h) q- w' s0 k% P|是按位或(双目运算符); i5 Z: Z7 e9 n* Q+ l
~是按位非(单目运算符)* D3 L; ^1 b1 M& |' a
1&0=0, 0&1=0, 0&0=0, 1&1=1
3 S$ x- m+ U% e5 {1|0=1, 0|1=1, 0|0=0, 1|1=1* \+ u2 N+ j$ r4 H: r" h% v% F
~1=0,~0=1
5 G8 o9 e7 T( ua|=b等价于a=a|b;; f8 t4 ]# f! g8 \
同理a&=b等价于a=a&b
; m0 o7 w8 o* p% `* ]所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART07 x/ r# z- Y4 m" C' a- M
rINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)( p1 N+ z9 ~: Q+ b
按位运算就是运算的时候先将操作数换算成二进制数来进行计算
9 B9 K( X, j" b7 E譬如3 & 5就是011 & 101=001 z1 U6 x3 q' g$ V( i+ y
|
|