嵌入基礎 , , , , , 運算子使用

2021-10-21 22:42:59 字數 786 閱讀 5031

功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位都為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...