天天看點

嵌入式C語言位運算之清位置位

如題,在嵌入式開發中,掌握位運算是節省開發時間和提高開發效率的一種高效方式。

我們不得不去熟悉如何快速掌握位運算這種高效的技巧,接下來看看程式。.

程式執行過程中,num &= ~(1 << 3 | 1 << 2) ; 這句話的意思是将0xfe的第2位和第3位清0,于是第一個printf輸出是:0xf2

如果你想繼續清往後的幾位,可以接着在後面或(|)上要清的位數。這裡的非(~)表示按位取反,&=表示與上對應的數,這裡是按位與上位1,我們都知道按位與的概念就是有1為1,有0為0。

num |= (1 << 3 | 1 << 2) ;這句話的意思是将0xf2這個數的第2位和第3位置一,于是第二個printf輸出是:0xfe;也就恢複成初始值0xfe了。這裡按位或的概念想必都清楚,有1一定為1,全0才為0。根據這些特性,很快,我們就可以操作對應的位了。

        在操作硬體寄存器中,也是要熟練的操作位,方法雷同,要根據資料手冊說明書來進行操作,以前寫過一些文章,大家可以翻出來看看,熟悉一下。

繼續閱讀