位操作有哪些?
按位與&、 按位或|、 按位異或^、 按位取反~、 左移、 右移
位操作重要嗎?
底層驅動基本上都是用C編寫的,驅動之所以能操作硬件,是因爲能實現對寄存器的控制,而控制寄存器,必須通過位操作的運算才能實現
按位取反(~)和非(!)得區別
非(!):如果非0則結果爲0,如果爲0則結果是1
置位和復位的宏定義
#define SET_BIT_N(x,n) ((x) | (1<<((n)-1)))
#define CLR_BIT_N(x,n) ((x) & ~(1<<((n)-1)))