功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位都為1時,結果位才為1。參與運算的兩個數均以補碼出現。
1&1=1
1&0=0
0&1=0
0&0=0
用&操作符進行清零操作。
參與運算的兩數各對應的二進位相或。只要對應的二個二進位有乙個為1時,結果位就為1。
1|1=1
1|0=1
0|1=1
0|0=0
設定相應位的值,不改變其他位的值 。
gpioa->odr| = 1 << 5;
這個操作就是將 odr暫存器的第5 位設定為 1,為什麼要通過左移而不是直接設定乙個
固定的值呢?其實,這是為了提高**的可讀性以及可重用性。這行**可以很直觀
明了的知道,是將第 5位設定為1,其他位的值不變。
如果你寫成 :gpioa->odr =0x0020;
這樣的**可讀性非常差同時也不好重用。
例如gpioa->odr 暫存器的每一位都用來設定乙個io 口的輸出狀態,某個時刻我們
希望去設定某一位的值為0,同時其他位都為1,簡單的作法是直接給暫存器設定乙個值:
gpioa->odr =0xfff7;
這樣的作法設定第 3位為0,但是這樣的寫法可讀性很差。看看如果我們使用取反操作怎
麼實現:
gpioa->odr= (uint16_t)~(1<<3);
看這行**應該很容易明白,我們設定的是odr 暫存器的第3位為 0,其他位為 1,可讀性
非常強。
PHP基礎 運算子 算術運算子 位運算子
1 將強制轉換為數字作加法運算 例 a 33 b 45.0 echo a b a b gettype a b 2 將強制轉換為數字作減法運算 例 a 33 b 45 echo a b a b gettype a b a 33.70 b 45.00 echo a b a b gettype a b 3...
python基礎 運算子的使用
算術運算子包括 1 含義為 表示正數 在數值與數值之間表示運算子 在字元與字元之間表示連線符 2 含義為 表示負數 表示運算子 3 含義為 在數值與數值之間表示運算子 在字串與數值之間表示重複 4 含義為 冪運算 5 含義為 除運算 6 含義為 取模又稱求餘,當被除數沒有除數大時,商是0,餘數是被除...
(運算子) 運算子
運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...