Arduino 中的按位右/左移位數字


如果您是韌體開發人員,那麼將數字或暫存器按一定位數進行移位可能非常常見。在 Arduino 中,也可以使用與 C 語言中相同的位移運算子,即 << 用於 **左移** 和 >> 用於 **右移**。

語法

x >> n or x << n

其中 x 是要進行位移的數字,n 是要將數字右移或左移的位數。

輸出是什麼?您將獲得透過將數字的二進位制表示形式向左或向右移動那麼多位而獲得的數字。例如,數字 5 表示為 0b00000101。

如果我將 5 右移 1 位,我將得到 0b00000010,其中最後一個 1 因右移而彈出。因此,結果數字為 2。

同樣,如果我將 5 左移 2 位,我將得到 0b00010100,其中由於左移,在末尾添加了兩個 0。因此,我們得到 20。

示例

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.println();

   int x = 5;

   Serial.println(x);
   Serial.println(x >> 1);
   Serial.println(x << 2);
}

void loop() {
   // put your main code here, to run repeatedly:
}

輸出

序列監視器輸出如下所示:

如您所見,列印的輸出完全符合我們的預期。

更新於: 2021 年 5 月 31 日

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告